详解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 相关文章推荐
python3使用tkinter实现ui界面简单实例
Jan 10 Python
Python实现注册登录系统
Aug 08 Python
Python上下文管理器和with块详解
Sep 09 Python
解决pycharm运行出错,代码正确结果不显示的问题
Nov 30 Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 Python
WxPython实现无边框界面
Nov 18 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
Dec 23 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
Jun 29 Python
pycharm配置QtDesigner的超详细方法
Jan 25 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 Python
python办公自动化之excel的操作
May 23 Python
分享python函数常见关键字
Apr 26 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
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
php实现的生成排列算法示例
2019/07/25 PHP
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
创建Vue项目以及引入Iview的方法示例
2018/12/03 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
python遍历数组的方法小结
2015/04/30 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
初学者学习Python好还是Java好
2020/05/26 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
室内设计实习自我鉴定
2013/09/25 职场文书
贷款承诺书范文
2014/05/19 职场文书
中学总务处工作总结
2015/08/12 职场文书
八年级物理教学反思
2016/02/19 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
Python List remove()实例用法详解
2021/08/02 Python