2013-12-12 33 views
1

從Django流式傳輸JSON響應的正確方法是什麼?例如。使用「StreamingHttpResponse`以下:Django,StreamingHTTPResponse和JSON

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響應)。

回答

0

這取決於您的數據是如何生成的,以及是否需要在生成所有數據之前呈現的內容。 Django文檔似乎不鼓勵這樣做,他說「StreamingHttpResponse只能用於在將數據傳輸到客戶端之前完全不需要重複整個內容的情況。」

對於如何正確使用StreamingHttpResponse示例,請參見Django 1.5 - using the new StreamingHttpResponse

+0

好的,謝謝!澄清了這個問題。 –