详解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的Django框架可适配的各种数据库介绍
Jul 15 Python
在python的类中动态添加属性与生成对象
Sep 17 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
Python使用win32 COM实现Excel的写入与保存功能示例
May 03 Python
Flask框架Flask-Login用法分析
Jul 23 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
python使用递归的方式建立二叉树
Jul 03 Python
使用opencv中匹配点对的坐标提取方式
Jun 04 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 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类
2006/11/25 PHP
php面向对象重点知识分享
2019/09/27 PHP
图片自动更新(说明)
2006/10/02 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
python 中文字符串的处理实现代码
2009/10/25 Python
Python实现Linux中的du命令
2017/06/12 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
PyQt5每天必学之单行文本框
2018/04/19 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
关于python的缩进规则的知识点详解
2020/06/22 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
大学生物业管理求职信
2013/10/24 职场文书
财务工作个人求职的自我评价
2013/12/19 职场文书
军训感想500字
2014/02/20 职场文书
四风问题查摆材料
2014/08/25 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技