详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法


Posted in Python onJanuary 07, 2021

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协议里面的标准类型。

到此这篇关于详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法的文章就介绍到这了,更多相关Django StreamingHttpResponse与FileResponse内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python正则匹配抓取豆瓣电影链接和评论代码分享
Dec 27 Python
Python lxml模块安装教程
Jun 02 Python
Python随手笔记第一篇(2)之初识列表和元组
Jan 23 Python
Python中几种导入模块的方式总结
Apr 27 Python
python编程嵌套函数实例代码
Feb 11 Python
浅谈python中对于json写入txt文件的编码问题
Jun 07 Python
django orm 通过related_name反向查询的方法
Dec 15 Python
python datetime中strptime用法详解
Aug 29 Python
余弦相似性计算及python代码实现过程解析
Sep 18 Python
sklearn-SVC实现与类参数详解
Dec 10 Python
Python3 io文本及原始流I/O工具用法详解
Mar 23 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
Apr 23 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 #Python
jupyter notebook更换皮肤主题的实现
Jan 07 #Python
基于 Python 实践感知器分类算法
Jan 07 #Python
如何编写python的daemon程序
Jan 07 #Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 #Python
详解Python遍历列表时删除元素的正确做法
Jan 07 #Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
Jan 06 #Python
You might like
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
php截取字符串函数分享
2015/02/02 PHP
php可变长参数处理函数详解
2017/02/22 PHP
PHP多进程编程实例详解
2017/07/19 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
python列表使用实现名字管理系统
2019/01/30 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
用Python进行websocket接口测试
2020/10/16 Python
美国渔具店:FishUSA
2019/08/07 全球购物
新闻记者实习自我鉴定
2013/09/19 职场文书
夜大自我鉴定
2013/10/31 职场文书
消防战士优秀事迹材料
2014/02/13 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
申报优秀教师材料
2014/12/16 职场文书
2015年团支部工作总结
2015/04/03 职场文书
学校通报表扬范文
2015/05/04 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
python中的None与NULL用法说明
2021/05/25 Python