StreamingHttpResponse
全部标签 当我使用StreamingHttpResponse时,我试图在前端向用户显示处理状态。我能够获得当前状态,但它被附加到前一个状态。我希望响应模板仅包含当前产量。views.pyfromdjango.shortcutsimportrenderfromdjango.httpimportStreamingHttpResponse,HttpResponseimporttimedeff1():x=0whilex{}""".format(x)yieldcodedefhome(request):returnStreamingHttpResponse(f1())outputinthebrowser12
我有一个标准的DRF网络应用程序,可以为其中一条路线输出CSV数据。呈现整个CSV表示需要一段时间才能完成。数据集非常大,所以我想要一个流式HTTP响应,这样客户端就不会超时。但是使用https://github.com/mjumbewu/django-rest-framework-csv/blob/2ff49cff4b81827f3f450fd7d56827c9671c5140/rest_framework_csv/renderers.py#L197中提供的示例并没有完全做到这一点。数据仍然是一个很大的有效载荷,而不是被分block,客户端最终在接收到字节之前等待响应。结构类似如下:
由于每个问题最好有一个问题,如果与anothermyquestion的另一部分相似,请耐心等待与同一项目相关。情况:我有一个html表单,我可以在其中设置一个数字,当它被提交时,它是调用views.stream_response它将值传递给stream.py并返回一个StreamingHttpResponse并且出现“虚拟”空白浏览器页面(/stream_response/),我在其中每秒可以看到一个渐进数字,直到m:123..m流.pyimporttimedefstreamx(m):lista=[]x=0whilelen(lista)%s\n"%xprint(lista[-1])re