详解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启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
Apr 09 Python
Python常见文件操作的函数示例代码
Nov 15 Python
python编写的最短路径算法
Mar 25 Python
Django imgareaselect手动剪切头像实现方法
May 26 Python
Python编程之序列操作实例详解
Jul 22 Python
在Pandas中处理NaN值的方法
Jun 25 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
Python银行系统实战源码
Oct 25 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 Python
Pytorch高阶OP操作where,gather原理
Apr 30 Python
python递归函数用法详解
Oct 26 Python
Python3+Django get/post请求实现教程详解
Feb 16 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 从数据库提取二进制图片的处理代码
2009/09/09 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
2016/11/14 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
Json解析的方法小结
2016/06/22 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
原生JS:Date对象全面解析
2016/09/06 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
食品厂厂长岗位职责
2014/01/30 职场文书
平安工地建设方案
2014/05/06 职场文书
火锅店的活动方案
2014/08/15 职场文书
暑期培训班策划方案
2014/08/26 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
鼋头渚导游词
2015/02/05 职场文书
幼师辞职信范文
2015/02/27 职场文书
夫妻吵架保证书
2015/05/08 职场文书