详解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比较两个列表大小的方法
Jul 11 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
python机器学习实战之树回归详解
Dec 20 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
pycharm运行和调试不显示结果的解决方法
Nov 30 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
python中列表的切片与修改知识点总结
Jul 23 Python
Python assert关键字原理及实例解析
Dec 13 Python
pandas 像SQL一样使用WHERE IN查询条件说明
Jun 05 Python
Python机器学习之逻辑回归
May 11 Python
python利用pandas分析学生期末成绩实例代码
Jul 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
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
php pki加密技术(openssl)详解
2013/07/01 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
javascript 页面只自动刷新一次
2009/07/10 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
BootStrap 导航条实例代码
2017/05/18 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
python简单实现操作Mysql数据库
2018/01/29 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
python验证身份证信息实例代码
2019/05/06 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
高一历史教学反思
2014/01/13 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
寒假致家长的一封信
2015/10/10 职场文书
远程教育培训心得体会
2016/01/09 职场文书
python基础入门之字典和集合
2021/06/13 Python
springboot如何初始化执行sql语句
2021/06/22 Java/Android