Django,StreamingHTTPResponse和JSON

时间:2013-12-12 21:23:17

标签: python django json http

从Django流式传输JSON响应的正确方法是什么?例如。使用'StreamingHttpResponse`进行以下操作:

def sample_json_view(self):

    data = { ... }

    resp = http.HttpResponse(content_type="application/json")
    json.dump(data, resp)
    return resp

我的目标是使用StreamingHttpResponse来最小化视图中的延迟。 StreamingHttpResponse是否比我们编写的HttpResponse更有优势?

或者:写入类似文件的HttpResponse对象(与json.dump一样)是否会使Django / mod_wsgi在开始将响应流式传输到客户端之前缓冲服务器上的整个响应? (增加延迟,必须首先生成所有JSON响应)。

1 个答案:

答案 0 :(得分:0)

这取决于数据的生成方式,以及是否需要在生成所有数据之前呈现的内容。 Django文档似乎不鼓励这样做,并说" StreamingHttpResponse应该仅用于绝对要求在将数据传输到客户端之前不迭代整个内容的情况。"

有关如何正确使用StreamingHttpResponse的示例,请参阅Django 1.5 - using the new StreamingHttpResponse