今天学了FileResponse,这模块太棒了,学完之后我已经开始幻想未来我在后端是什么样子了,想想都流口水。

FileResponse

FileResponse 是 StreamingHttpResponse 的子类 拥有自动分段,自动迭代的功能,适合二进制文件传输,常用的传输文件格式包括py、txt、jpg、png、gif、docx、xlsx、mp3、mp4等。

我们结合代码看一下。

from django.http import FileResponsedef download(request):response = FileResponse(open(r"yinyue.mp3", "rb"))response['Content-Type'] = 'application/octet-stream'response['Content-Disposition'] = "attachment;filename=music.mp3"  # 注意filename不支持中文return response

在视图中定义download函数,注意必须要以request作为参数,同时需要导入 FileResponse 模块。使用 FileResponse 读取文件时直接使用open函数即可,无需使用with open 的方法。这里有两个特定的MIME标记 Content-Type 与 Content-Disposition,第一个是指定文件类型,第二个是用于指定文件下载的名称,注意有attachment参数,以及filename不支持中文名(暂时我了解的是这样)。

最后,如果指定文件路径时是使用相对路径的话就要格外的注意了,相对路径应该是相对manage.py而言的,而不是相对于view函数。

因为MP3跟manage.py处在同一级目录,所以直接引用就完事。噢对了,读写的时候要二进制读写即rb,而不要写成r。

Django 小记 FileResponse 实现文件下载相关推荐

  1. 【Django下载文件-Kml文件下载】

    Django下载文件系列 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 第一章 开发应该了解的Web文件下载 第二章 Django下载文件-三种方法 第三章 Django下载文件- ...

  2. 【开发应该了解的Web文件下载】

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 第一章 开发应该了解的Web文件下载 第二章 Django下载文件-三种方法 第三章 Django下载文件-Office ...

  3. django的优缺点总结 - Python Web开发面试必备

    Django是利用Python语言从事Web开发的首选框架.如果你以后想从事python web开发工作,就必需了解其优缺点.这些都可能会是你将来的面试题哦. Django的优点 功能完善.要素齐全: ...

  4. Django 【全家桶】

    Python Web 框架要点 1.Web 应用程序处理流程: 2.Web程序框架的意义 用来搭建Web应用程序 免去不同Web应用相同代码部分的重复编写,只需要关心Web应用核心的业务逻辑实现 3. ...

  5. Django基础(11): 表单集合Formset的高级用法详解

    Formset(表单集)是多个表单的集合.Formset在Web开发中应用很普遍,它可以让用户在同一个页面上提交多张表单,一键添加多个数据,比如一个页面上添加多个用户信息.今天小编我就介绍下Djang ...

  6. Django 2.0 官方中文文档终于发布啦! 附链接!

    对于很多想从事学习Django Web开发的很多人而言,Django一直没有官方的中文文档是个弊端.而且Django更新较快,国内很多翻译版本都太滞后了.现在小编我告诉大家一个好消息!! Django ...

  7. django后台返回excel表

    django后台返回excel表 1. 方法一(不推荐) 思路:先根据条件从数据库查找data,再把data生成excel表,再把excel表返回(FileResponse) 步骤: 1.data:利 ...

  8. 详解django三种文件下载方式

    推荐使用FileResponse,从源码中可以看出FileResponse是StreamingHttpResponse的子类,内部使用迭代器进行数据流传输. 在实际的项目中很多时候需要用到下载功能,如 ...

  9. Django的文件下载

    在实际的项目中很多时候需要用到下载功能,如导excel.pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍django中的文件下载. 我们这里 ...

最新文章

  1. 面向对象的软件测试技术
  2. Linux下三大最佳的开源视频播放器
  3. JavaScript window.location物
  4. [PHP]用PHPUnit进行行为驱动开发(Behaviour-Driven Development)
  5. 关于GC.Collect在不同机器上表现不一致问题
  6. 半正定矩阵的判定方法_线性代数30——正定矩阵和最小值
  7. SVN 分支/合并/切换
  8. 使用Docker堆栈部署的微服务-WildFly,Java EE和Couchbase
  9. 第九周项目6-穷举法之年龄几何
  10. python 读取xml表结构数据_Python从XML-fi读取数据
  11. 本地wamp的Internal Server Error错误解决方法
  12. 只返回数据表的部分字段(不建类)
  13. linux下的hosts文件
  14. Activity的生命周期方面复习笔记
  15. css在文字中间插入下划线,css实现文字自定义下划线
  16. 人脸识别中怎么区分人脸和照片
  17. 图像处理--医疗图片的处理
  18. Scala-trait(特质)
  19. 向周鸿祎学习产品和产品推销方法
  20. 【1+X】软件测试报告

热门文章

  1. 批量将doc转为docx
  2. 党的生日!爸爸妈妈节日快乐!
  3. android用开源框架实现仿地图界面功能
  4. 原来写刮刮卡这么简单,几行代码就搞定,你来你也行,谢谢惠顾!
  5. 开发android主攻四大方向
  6. 中美科技巨头加速裁员,超30万打工人饭碗岌岌可危|钛媒体焦点
  7. 怎样通过微信查找特殊服务器,微信支持多设备同时在线 还有哪些你不知道的微信隐藏功能...
  8. 2021-05-24chrome浏览器市场份额2018年1月占比上升至61.41%
  9. 【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.2 界面布局
  10. kettle案例1-计算器生成时间维度数据