views.py
html
@condition(etag_func=None) def start_brecc_import(request): resp = HttpResponse( stream_generator(), mimetype='text/html') return resp def stream_generator(): yield "<html><body>\n" for k in range(10): yield k yield " " * 1024 # force browser to output time.sleep(1) yield "<p>complete!!</p><a href=\"/\">return</a></body></html>\n"
使用condition修飾符修飾對應的view函數。python
使用一個產生器(generator)函數不斷的發出流數據瀏覽器
因爲瀏覽器自己會對http響應作buffering,爲了能在瀏覽器中看到stream的信息一條一條的輸出,則須要增長yield " " * 1024強制填充緩衝區。若是隻是用命令行的curl之類的去讀取,則能夠不須要這句話curl