Python+django实现文件下载


Posted in Python onJanuary 17, 2016

(1)方法一、直接用a标签的href+数据库中文件地址,即可下载。缺点:word excel是直接弹框下载,对于image txt 等文件的下载方式是直接在新页面打开。

(2)方法二、在python后台对下载内容进项处理,返回内容直接弹出下载框。

#后台处理函数
def downloadFile(req):
  filename=basePath+req.GET['url']
  def file_iterator(file_name, chunk_size=512):
    with open(file_name) as f:
      while True:
        c = f.read(chunk_size)
        if c:
          yield c
        else:
          break
  response = StreamingHttpResponse(file_iterator(filename))
  response['Content-Type'] = 'application/octet-stream'
  response['Content-Disposition'] = 'attachment;filename="{0}"'.format(filename)
  return response

(3)前台使用函数方法

①、a标签调用函数传入路径<a href='/downloadFile/url=路径'>

②、button标签调用jq方法调用后台函数

<input type='button' class='download'>
#下载按钮点击事件
 $("body").on("click",".download",function(){3   location.href="/downloadFile/?url="+路径;
 });
Python 相关文章推荐
python使用PyV8执行javascript代码示例分享
Dec 04 Python
在Linux下调试Python代码的各种方法
Apr 17 Python
python实现计算倒数的方法
Jul 11 Python
Python实现一个转存纯真IP数据库的脚本分享
May 21 Python
Python基于动态规划算法解决01背包问题实例
Dec 06 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
python opencv将图片转为灰度图的方法示例
Jul 31 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
Python中socket网络通信是干嘛的
May 27 Python
python和opencv构建运动检测器的实现
Mar 03 Python
人工智能深度学习OpenAI baselines的使用方法
May 20 Python
Python+django实现文件上传
Jan 17 #Python
初步剖析C语言编程中的结构体
Jan 16 #Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
Jan 16 #Python
python实现发送和获取手机短信验证码
Jan 15 #Python
详解python单例模式与metaclass
Jan 15 #Python
理解python正则表达式
Jan 15 #Python
Python工程师面试题 与Python Web相关
Jan 14 #Python
You might like
PHP自定义大小验证码的方法详解
2013/06/07 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
php自定文件保存session的方法
2014/12/10 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
理解Javascript_08_函数对象
2010/10/15 Javascript
jquery自定义下拉列表示例
2014/04/25 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
微信小程序时间轴实现方法示例
2019/01/14 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
Django实现基于类的分页功能
2019/10/31 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
python中K-means算法基础知识点
2021/01/25 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
《与象共舞》教学反思
2014/02/24 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
二人合伙经营协议书
2014/09/13 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
研究生导师推荐信
2015/03/25 职场文书
学校党支部承诺书
2015/04/30 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
python垃圾回收机制原理分析
2022/04/13 Python
Android开发之底部导航栏的快速实现
2022/04/28 Java/Android