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中的匿名函数使用简介
Apr 27 Python
实例讲解Python中SocketServer模块处理网络请求的用法
Jun 28 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
Python计时相关操作详解【time,datetime】
May 26 Python
django启动uwsgi报错的解决方法
Apr 08 Python
Django基础知识 URL路由系统详解
Jul 18 Python
python编写计算器功能
Oct 25 Python
python打印异常信息的两种实现方式
Dec 24 Python
pytorch常见的Tensor类型详解
Jan 15 Python
将数据集制作成VOC数据集格式的实例
Feb 17 Python
python实现KNN近邻算法
Dec 30 Python
PyQt5爬取12306车票信息程序的实现
May 14 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
Ajax PHP简单入门教程代码
2008/04/25 PHP
php 信息采集程序代码
2009/03/17 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
js实现获取鼠标当前的位置
2016/12/14 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
Vue实现简单分页器
2018/12/29 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
python获取从命令行输入数字的方法
2015/04/29 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
python中dict使用方法详解
2019/07/17 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
颁奖典礼主持词
2014/03/25 职场文书
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
Redis 限流器
2022/05/15 Redis