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

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

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

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

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

点我下载

方式一:使用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 django下载_简单了解django文件下载方式相关推荐

  1. python产品发布会_阅读虫师django开发发布会系统以及django开发Web接口分享

    最近阅读了虫师的书籍,关于虫师分析django Web开发以及django 开发Web接口,通过阅读虫师的书籍,学到了很多东西,在这里分享一下,和简友一起学习和讨论 1.创建项目django-admi ...

  2. django 部署_狂野的Django:部署生存的技巧

    django 部署 by Ali Alavi 通过Ali Alavi 狂野的Django:部署生存的技巧 (Django in the wild: tips for deployment surviv ...

  3. 阿里云大学python教程下载_阿里大学开放 11 门免费 Python 视频课程

    Python 语言近几年越来越火,语言使用率占比节节攀升. 我们知道Python 现在稳居世界编程语言前三名,在 PYPL 语言流行指数上更是稳居第一,可见 python 的适用范围.受众基础.影响力 ...

  4. python抠图教程_简单几行Python代码实现8秒抠图的AI神器,根本无需PS(附教程)...

    曾几何时,「抠图」是一个难度系数想当高的活儿,但今天要介绍的这款神工具,只要 3 行代码 5 秒钟就可以完成高精度抠图,甚至都不用会代码,点两下鼠标就完成了. 感受下这款抠图工具抠地有多精细: 是不是 ...

  5. 用python怎么下载_如何使用python下载视频

    python怎么下载视频 在进行爬虫的时候,经常需要保存视频到本地.通常得先获得视频(.mp4)的下载链接,再设置保存到本地的路径(路径包括最后的命名, 例如:D:/1.mp4),因此函数传入的参数为 ...

  6. python tkinter下载_学习使用tkinter

    学习使用tkinter Tkiinter **tkinter是使用python窗口视窗设计的模块.Tkinter模块是python的标准TK GUL工具包的接口. 优点 python 自带tkinte ...

  7. python网站设计理念_简单介绍下python Django框架的历史,设计理念及优势_Django讲解2...

    简单介绍下python Django框架的历史,设计理念及优势 Django是一个高层次的 Python Web 框架,它是一个鼓励快速开发和干净,实用的框架设计.Django可以更容易地快速构建更好 ...

  8. python创建django项目语句_简单了解Django项目应用创建过程

    创建应用前必须先进入虚拟环境 workon npy007 创建个文件夹 madir test cd test django-admin strartproject djdemo djdemo为项目名 ...

  9. python增删改查的框架_简单的Django框架增删改查操作

    Django之orm对MysqL数据库的增删改查操作简介: 利用Django中orm来查找数据库中的数据,对数据库进行增.删.改.查: 增:新增数据 # 操作数据库user表新增记录 # 方式1: u ...

最新文章

  1. CreateMutex创建互斥体可以用于只运行进程的一个实例
  2. ubuntu 安装redis
  3. Python学习之数组
  4. linux的终端,网络虚拟终端,伪终端
  5. 【转】C#中数组复制的4种方法
  6. 日期控件的使用 c# 114867852
  7. 华为云数据库亮相下一代数据技术发展论坛,助力“数字一带一路”
  8. 《现代前端技术解析》第七章读书笔记
  9. 图片打散存储JAVA_通过java的i/o机制进行图片流的存储以及对网络图片的存储
  10. 用JEP+SpringBoot进行动态公式处理计算
  11. RTL8153 VC CG
  12. 从周鼎看如何当好研究生
  13. linux字体文件路径,Linux下安装字体
  14. 计算机文字输入程序,电脑“造字”,其实很简单
  15. 我的世界服务端大全-服务器插件等相关网站推荐
  16. CAD带文字线型的文字偏移bug介绍
  17. 如何设置Java环境变量
  18. 英特尔RealSense激光雷达摄像头L515拆解分析
  19. RealSense技术在SR300摄像头上的应用
  20. Win10系统出现edge主页被劫持篡改的问题

热门文章

  1. 2018数据技术嘉年华-金融峰会·重庆站即将起航!
  2. 这次,甘肃的老百姓办理就医再也不用等了
  3. NDPQ(NDP+PQ),定义分布式数据库新方向
  4. 这几个动态规划的问题,面试官就爱问
  5. 华为云云原生数据库GaussDB加速创新,企业核心数据上云信赖之选
  6. 测试攻城狮必备技能点!一文带你解读DevOps下的测试技术
  7. 【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察
  8. 面试官:你对Redis缓存了解吗?面对这11道面试题是否有很多问号?
  9. 【华为云技术分享】《跟唐老师学习云网络》 - 我的网络概念
  10. js html转义字符串,js中html拼接特殊字符转义