【问题标题】:Django 1.5 - using the new StreamingHttpResponseDjango 1.5 - 使用新的 StreamingHttpResponse
【发布时间】:2013-02-27 21:07:05
【问题描述】:

如果我实现 StreamingHttpResponse as shown here,则在 10 秒结束之前不会显示“流式传输”响应。关于djangoproject 的信息不多,只是说它对于生成大型 CSV 文件很有用,同时警告说应该在请求-响应周期之外执行昂贵的任务。

但是,我看不出它使用耗时的代码完全可以工作。生成器对象有什么东西可以防止这种情况发生吗?这是复制的代码以供参考。

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)

【问题讨论】:

  • 您的 100 个字节,无论是否流式传输,都绝对会在网络的最低​​级别进行缓冲。尝试一百万行作为开始。
  • @Pavel 谢谢你 - 我在产量字符串中添加了 ' '*1024 ,它可以按需要工作

标签: django django-views


【解决方案1】:

[OP 的解决方案转换为下面的答案]

Pavel 的评论指出,我的示例的问题在于浏览器的缓冲,这可以通过修改发送的数据量来解决,例如

yield '{} <br /> {}'.format(x, ' '*1024)

【讨论】:

    猜你喜欢
    • 2013-12-31
    • 2016-06-09
    • 2013-02-13
    • 2018-03-23
    • 2022-09-27
    • 2013-07-07
    • 2018-06-09
    • 2013-06-06
    相关资源
    最近更新 更多