详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
作者:Better_Zflyee 时间:2021-04-13 08:17:01
1 StreamingHttpResponse下载
StreamingHttpResponse(streaming_content):流式相应,内容的迭代器形式,以内容流的方式响应。
注:StreamingHttpResponse一般多现实在页面上,不提供下载。
以下为示例代码
def streamDownload(resquest):
def file_iterator(filepath, chunk_size = 512):
with open(filepath, 'rb') as f:
while True:
con = f.read(512)
if con:
yield con
else:
break
filename = os.path.abspath(__file__) + 'test.txt'
response = StreamingHttpResponse(file_iterator(filename)
return response
# 最后程序会将结果打印在显示器上
2 FileResponse下载
FileResponse(stream):以流形式打开后的文件
注:FileResponse是StreamingHttpResponse的子类
以下为示例代码:
def homeproc2(request):
cwd = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
response = FileResponse(open(cwd + "/msgapp/templates/youfile", "rb"))
response['Content-Type] = 'application/octet-stream'
response['Content-Disposition'] = 'attachment;filename="filename"'
return response
需要解释说明的是:
response['Content-Type] = 'application/octet-stream'
response['COntent-Disposition'] = 'attachment;filename="filename"'
Content-Type:用于指定文件类型。
COntent-Disposition:用于指定下载文件的默认名称,对,没错! “CO”两个字符都要大写。
两者都是MIME协议里面的标准类型。
来源:https://blog.csdn.net/Geoffrey_Zflyee/article/details/107360761
标签:Django,StreamingHttpResponse,FileResponse,下载
0
投稿
猜你喜欢
PyQt5高级界面控件之QTableWidget的具体使用方法
2023-09-05 15:36:41
python 抓包保存为pcap文件并解析的实例
2023-04-03 03:52:04
python实现获取当前设备的地点位置
2022-02-11 05:30:59
Webpack 实现 Node.js 代码热替换
2024-05-13 10:04:14
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2023-06-22 13:12:05
Python实现感知器模型、两层神经网络
2021-11-14 07:34:19
Python对象的底层实现源码学习
2023-06-30 00:33:29
深入理解Python中的内置常量
2023-01-21 02:57:47
Python Pandas对缺失值的处理方法
2021-03-18 19:38:55
javascript动画之模拟拖拽效果篇
2024-04-16 09:14:22
Python2和3字符编码的区别知识点整理
2023-03-11 16:19:46
基于Python脚本实现邮件报警功能
2023-02-04 17:16:41
利用ASP+JMAIL进行邮件群发的新思路
2008-03-20 13:30:00
PHP基于phpqrcode类生成二维码的方法示例详解
2023-07-15 22:57:52
Git 教程之标签详解
2023-10-25 21:58:04
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2022-02-08 00:33:29
Python 实现任意区域文字识别(OCR)操作
2021-04-23 03:52:37
根据DataFrame某一列的值来选择具体的某一行方法
2021-01-08 20:33:42
python实现批量修改文件名代码
2023-05-04 14:44:41
树莓派(python)与arduino串口通信的详细步骤
2022-05-29 15:31:06