详解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实现实例
Apr 26 Python
windows系统下Python环境搭建教程
Mar 28 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
python3调用百度翻译API实现实时翻译
Aug 16 Python
对python中大文件的导入与导出方法详解
Dec 28 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
PyQt5 如何让界面和逻辑分离的方法
Mar 24 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
Jul 02 Python
Python类的继承super相关原理解析
Oct 22 Python
Pytorch之扩充tensor的操作
Mar 04 Python
Python基于百度API识别并提取图片中文字
Jun 27 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
PHP中HTML标签过滤技巧
2014/01/07 PHP
PHP反向代理类代码
2014/08/15 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
JavaScript继承方式实例
2010/10/29 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
详解vue父子组件间传值(props)
2017/06/29 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
详解Vue.js项目API、Router配置拆分实践
2018/03/16 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
2018/06/26 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
[02:08:58]2014 DOTA2国际邀请赛中国区预选赛 Ne VS CIS
2014/05/22 DOTA
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
数控专业个人求职信范文
2014/02/05 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
医德考评自我评价
2014/09/14 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
毕业生政审意见范文
2015/06/04 职场文书
创业不要错过,这4种餐饮新模式
2019/07/18 职场文书