Nasıl Django ile bir HttpResponse akışı
'Merhaba Dünya' yanıtları Django (1.2) çalışma akışı. almaya çalışıyorum Bir jeneratör ve yield
Bu fonksiyonu kullanmak için nasıl anladım. Ama hala tepki yok izle. -- Belki ETAG hesap makinesi ile mucking bir katman var sanıyorum? Ama devre dışı bırakmak için nasıl emin değilim. Biri yardım edebilir mi?
İşte "Merhaba" ben akışı şimdiye kadar: . dünya
def stream_response(request):
resp = HttpResponse( stream_response_generator())
return resp
def stream_response_generator():
for x in range(1,11):
yield "%s\n" % x # Returns a chunk of the response to the browser
time.sleep(1)
CEVAP
ETAG katman condition decorator kullanarak devre dışı bırakabilirsiniz. Bu akış yanıtınız HTTP üzerinden geri alacak. curl
gibi bir komut satırı aracı ile bunu doğrulayabilirsiniz. Ama muhtemelen tarayıcınız nehir tepki göstermek için yeterli olmayacaktır. Tarayıcı akarsu gibi tepki göstermeye teşvik etmek için, boru aşağı boşluk bir grup kendi arabellekleri doldurmak için zorlamak için zorlayabilir. Örnek aşağıdaki gibidir:
from django.views.decorators.http import condition
@condition(etag_func=None)
def stream_response(request):
resp = HttpResponse( stream_response_generator(), mimetype='text/html')
return resp
def stream_response_generator():
yield "<html><body>\n"
for x in range(1,11):
yield "<div>%s</div>\n" % x
yield " " * 1024 # Encourage browser to render incrementally
time.sleep(1)
yield "</body></html>\n"
Django hata ayıklama nasıl, iyi mi?...
Django nasıl bir görünüm içinde 2 ya d...
Nasıl HttpResponse zaman aşımı ayarlam...
nasıl bir dize bir akışı oluşturmak iç...
Nasıl bir Django queryset filtre içind...