详解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中对list去重的多种方法
Sep 18 Python
python实现可将字符转换成大写的tcp服务器实例
Apr 29 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
Python简单实现控制电脑的方法
Jan 22 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
Random 在 Python 中的使用方法
Aug 09 Python
python 中pyqt5 树节点点击实现多窗口切换问题
Jul 04 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
python中pathlib模块的基本用法与总结
Aug 17 Python
Python如何在bool函数中取值
Sep 21 Python
Python list和str互转的实现示例
Nov 16 Python
python不同版本的_new_不同点总结
Dec 09 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
咖啡的传说和历史
2021/03/03 新手入门
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
php getsiteurl()函数
2009/09/05 PHP
PHP clearstatcache()函数详解
2010/03/02 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)
2016/08/25 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
[01:00:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第三场 1月10日
2021/03/11 DOTA
python实现12306火车票查询器
2017/04/20 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
python识别验证码的思路及解决方案
2020/09/13 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
爱普生美国官网:Epson美国
2018/11/05 全球购物
internal修饰符起什么作用
2013/12/16 面试题
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
父母对孩子的寄语
2014/04/09 职场文书
高三英语教学反思
2016/03/03 职场文书
vue首次渲染全过程
2021/04/21 Vue.js