详解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实现单线程多任务非阻塞TCP服务端
Jun 13 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
python tkinter组件摆放方式详解
Sep 16 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
Jan 28 Python
Python API len函数操作过程解析
Mar 05 Python
Python 实现敏感目录扫描的示例代码
May 21 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
Python创建临时文件和文件夹
Aug 05 Python
Django数据库迁移常见使用方法
Nov 12 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数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
加快Vue项目的开发速度的方法
2018/12/12 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
python dict remove数组删除(del,pop)
2013/03/24 Python
python用字典统计单词或汉字词个数示例
2014/04/22 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
python try 异常处理(史上最全)
2019/03/07 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
农村婚庆司仪主持词
2014/03/15 职场文书
体育专业自荐书
2014/05/29 职场文书
个人合伙协议书范本
2014/10/14 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
家庭经济困难证明
2015/06/23 职场文书
小学生红领巾广播稿
2015/08/19 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js