简单了解django文件下载方式


Posted in Python onFebruary 10, 2020

这篇文章主要介绍了简单了解django三种文件下载方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

推荐使用FileResponse,从源码中可以看出FileResponse是StreamingHttpResponse的子类,内部使用迭代器进行数据流传输。

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

如nginx,这里我们主要介绍django中的文件下载。

实现方式:a标签+响应头信息(当然你可以选择form实现)

<div class="col-md-4"><a href="{% url 'download' %}" rel="external nofollow" >点我下载</a></div>

方式一:使用HttpResponse
路由url:
    url(r'^download/',views.download,name="download"),
views.py代码
    from django.shortcuts import HttpResponse
    def download(request):
       file = open('crm/models.py', 'rb')
       response = HttpResponse(file)
       response['Content-Type'] = 'application/octet-stream' #设置头信息,告诉浏览器这是个文件
       response['Content-Disposition'] = 'attachment;filename="models.py"'
       return response
方式二:使用StreamingHttpResponse, 其他逻辑不变,主要变化在后端处理:
      from django.http import StreamingHttpResponse
      def download(request):
         file=open('crm/models.py','rb')
         response =StreamingHttpResponse(file)
         response['Content-Type']='application/octet-stream'
         response['Content-Disposition']='attachment;filename="models.py"'
         return response
方式三:使用FileResponse
from django.http import FileResponse
def download(request):
 file=open('crm/models.py','rb')
 response =FileResponse(file)
 response['Content-Type']='application/octet-stream'
 response['Content-Disposition']='attachment;filename="models.py"'
 return response

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python用sndhdr模块识别音频格式详解
Jan 11 Python
用Python编写一个高效的端口扫描器的方法
Dec 20 Python
python爬虫基础教程:requests库(二)代码实例
Apr 09 Python
基于Python的PIL库学习详解
May 10 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
Python 获取numpy.array索引值的实例
Dec 06 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
详解Python中pyautogui库的最全使用方法
Apr 01 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
pycharm全局搜索的具体步骤
Jul 28 Python
python中openpyxl和xlsxwriter对Excel的操作方法
Mar 01 Python
yolov5返回坐标的方法实例
Mar 17 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
Feb 10 #Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
Feb 10 #Python
解决tensorflow添加ptb库的问题
Feb 10 #Python
使用TensorFlow直接获取处理MNIST数据方式
Feb 10 #Python
python如何实现单链表的反转
Feb 10 #Python
基于python求两个列表的并集.交集.差集
Feb 10 #Python
python实现串口通信的示例代码
Feb 10 #Python
You might like
乐信RP2100的电路分析和打磨
2021/03/02 无线电
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
Jquery为单选框checkbox绑定单击click事件
2012/12/18 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
jQuery中的基本选择器用法学习教程
2016/04/14 Javascript
javascript RegExp 使用说明
2016/05/21 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
Python和php通信乱码问题解决方法
2014/04/15 Python
Python正则捕获操作示例
2017/08/19 Python
Django中的Signal代码详解
2018/02/05 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
英国足球店:UK Soccer Shop
2017/11/19 全球购物
考博专家推荐信模板
2013/12/02 职场文书
学前班教师的自我鉴定
2013/12/05 职场文书
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
2016年情人节问候语
2015/11/11 职场文书
MSSQL基本语法操作
2022/04/11 SQL Server
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL