'yield'関数は、出力をブラウザーにストリーミングします。つまり、応答に値を追加します。
私の要件は、「追加」の代わりに、古い値を上書きする組み込み関数があるか、または単に古い値に新しい値を追加しないと言うことです。
私の要件を説明するには:
以下は私の「views.py」の関数です:
def handle_uploaded_file(f):
filename = "/media/Data/static/Data/" + f.name
uploaded = 0
perc = 0.0
filesize = f.size
destination = open(filename, 'wb+')
for chunk in f.chunks():
destination.write(chunk)
uploaded = uploaded + len(chunk)
yield(str((uploaded * 100) / filesize) + "% ")
destination.close()
yield(f.name + " (" + str(round(f.size/1024.0, 2)) + " KB) uploaded successfully.")
上記の関数の出力は次のとおりです。
2% 4% 7% 9% 11% 14% 16% 18% 21% 23% 25% 28% 30% 32% 35% 37% 39% 42% 44% 46% 49% 51% 53% 56% 58% 60% 63% 65% 67% 70% 72% 74% 77% 79% 81% 84% 86% 89% 91% 93% 96% 98% 100% Butterfly.wmv (2732.16 KB) uploaded successfully.
ご覧のとおり、パーセンテージは前に渡された値に追加されますが、古い値を新しい値で上書きしたいと思います。
Django / pythonにこの動作のための組み込み関数はありますか?または、コードを使用してこれをシミュレートできますか?
前もって感謝します。