Python+django实现文件下载

yipeiwu_com5年前Python基础

(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模块时,我们可以用 import os 也可以用 from os import * 当然,不推荐第二种方法,这样,会导入太多的os模块内的函数,所以...

在Django中创建URLconf相关的通用视图的方法

抽取出我们代码中共性的东西是一个很好的编程习惯。 比如,像以下的两个Python函数: def say_hello(person_name): print 'Hello, %s'...

tensorflow实现在函数中用tf.Print输出中间值

tensorflow实现在函数中用tf.Print输出中间值

tensorflow由于其基于静态图的模式,导致写代码的时候很难调试,除了用官方的调试工具外,最直接的方法就是把中间结果输出出来查看,然而,直接用print函数只能输出tensor变量的...

python实现简单图书管理系统

python实现简单图书管理系统

用python实现一个简单的图书管理系统 ,供大家参考,具体内容如下 1、工具:PyCharm3.6 社区版 我创建了一个工程叫fairy,把解释器换成Pytnon3.6 创建一个p...

基于python2.7实现图形密码生成器的实例代码

具体代码如下所示: #coding:utf8 import random,wx def password(event): a = [chr(i) for i in range(9...