一、JsonResponse對象
class JsonResponse(data,encoder=DjangoJSONEncoder,safe=True,json_dumps_params=None,**kwargs)
- HttpResponse子類,它幫助創建json編碼的響應。
- 默認內容類型標題設置為application/json。
- 第一個參數data應該是一個dict實例。如果safe被設置為False,那么它可以是任何json可序列化的對象。
- 如果safe為True,並且作為第一個參數傳遞一個非dict對象,則會引發一個類型錯誤。
- 序列化非字典對象時,如果沒有明確設置safe為False,會引發TypeError錯誤
>>> from django.http import JsonResponse >>> response = JsonResponse({'foo': 'bar'}) >>> response.content b'{"foo": "bar"}'
二、StreamingHttpResponse對象
StreamingHttpResponse類用於將響應從Django流到瀏覽器。如果生成響應需要太長時間或使用太多內存,應該這樣做。在將數據傳輸到客戶機之前不迭代整個內容的情況下使用
- 用迭代器作為傳輸內容
- 不能訪問它的內容,除非通過迭代響應對象本身。只有在將響應返回給客戶機時才會發生這種情況。
- 它沒有內容屬性。相反,它具有streaming_content屬性。
三、FileResponse對象
class FileResponse(open_file,as_attachment=False,filename=",**kwargs)
- 如果as_attachment=True,則設置內容配置頭,它要求瀏覽器將文件作為下載提供給用戶。
- 如果open_file沒有名稱,或者open_file的名稱不合適,則使用filename參數提供自定義文件名。
- FileResponse接受任何帶有二進制內容的類文件對象。
>>> from django.http import FileResponse >>> response = FileResponse(open('myfile.png', 'rb'))
文件將會自動關閉,所以不要用with語句打開文件。