详解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输出PowerPoint(ppt)文件中全部文字信息的方法
Apr 28 Python
两个命令把 Vim 打造成 Python IDE的方法
Mar 20 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
Python使用Phantomjs截屏网页的方法
May 17 Python
使用Python抓取豆瓣影评数据的方法
Oct 17 Python
python3下载抖音视频的完整代码
Jun 05 Python
django-filter和普通查询的例子
Aug 12 Python
Django shell调试models输出的SQL语句方法
Aug 29 Python
python科学计算之narray对象用法
Nov 25 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
Keras loss函数剖析
Jul 06 Python
pytest配置文件pytest.ini的详细使用
Apr 17 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
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
Smarty模板配置实例简析
2019/07/20 PHP
jQuery学习基础知识小结
2010/11/25 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
Python实现CET查分的方法
2015/03/10 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
python使用rpc框架gRPC的方法
2018/08/24 Python
Python处理session的方法整理
2019/08/29 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
Python正则表达式如何匹配中文
2020/05/27 Python
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
本科生详细的自我评价
2013/09/19 职场文书
教师个人的自我评价分享
2014/01/02 职场文书
总经理岗位职责范本
2014/02/02 职场文书
超市商业计划书
2014/05/04 职场文书
2014年派出所工作总结
2014/11/21 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技