Wenn ich StreamingHttpResponse
as shown here implementieren, wird die 'Streaming' Antwort nicht angezeigt, bis die 10 Sekunden abgelaufen sind. Es gibt nicht viele Informationen über djangoproject, außer dass es nützlich ist, um große CSV-Dateien zu erzeugen, während davor gewarnt wird, dass teure Aufgaben außerhalb des Anfrage-Antwort-Zyklus ausgeführt werden sollten.Django 1.5 - mit der neuen StreamingHttpResponse
Allerdings kann ich nicht sehen, dass es überhaupt mit zeitintensiven Code funktioniert. Gibt es etwas am Generator-Objekt, das dies verhindert? Hier ist der Code als Referenz dupliziert.
import time
from django.http import StreamingHttpResponse
def stream_response(request):
resp = StreamingHttpResponse(stream_response_generator())
return resp
def stream_response_generator():
for x in range(1,11):
yield '{} <br />\n'.format(x)
time.sleep(1)
Ihre 100 Bytes, Streaming oder nicht, werden absolut auf den niedrigsten Netzwerkebenen gepuffert. Versuchen Sie eine Million Zeilen für einen Start. –
@Pavel Danke dafür - Ich habe '' * 1024 zum Yield String hinzugefügt und es funktioniert wie gewünscht – Frank