详解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 23 Python
详解Python中的日志模块logging
Jun 19 Python
一步步解析Python斗牛游戏的概率
Feb 12 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
python daemon守护进程实现
Aug 27 Python
python爬取酷狗音乐排行榜
Feb 20 Python
python仿evething的文件搜索器实例代码
May 13 Python
python自动生成model文件过程详解
Nov 02 Python
Python多进程编程常用方法解析
Mar 26 Python
Django如何使用redis作为缓存
May 21 Python
python怎么判断模块安装完成
Jun 19 Python
总结几个非常实用的Python库
Jun 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
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
PHP中的日期时间处理利器实例(Carbon)
2017/06/09 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
JS实现指定区域的全屏显示功能示例
2019/04/25 Javascript
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
Python接口开发实现步骤详解
2020/04/26 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
深入浅析Python代码规范性检测
2020/07/31 Python
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
自我鉴定书范文
2013/10/02 职场文书
简历中自我评价范文3则
2013/12/14 职场文书
小学生班会演讲稿
2014/01/09 职场文书
中文师范生自荐信
2014/01/30 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
毕业酒会致辞
2015/07/29 职场文书
Java 在生活中的 10 大应用
2021/11/02 Java/Android
Spring Boot 实现 WebSocket
2022/04/30 Java/Android
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL