利用python web框架做文件流下载代码示例

作者:袖梨 2020-06-02

本篇文章小编给大家分享一下利用python web框架做文件流下载代码示例,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

这里拿python flask框架来做例子,其实非常简单,步骤一共有3个

1: 取出数据, 我们默认为json文件吧

2: 在response中加入指定的header

3: 将数据返回.

那么废话少说,我们直接上代码:

# coding:utf-8
import json
 
from flask import Flask, make_response 
app = Flask(__name__)
 
@app.route('/download', methods=["GET"])
def download():user = {'name': 'dewei', 'age': 33} 
 data = json.dumps(user)
 response = make_response(data)
 response.headers['content-type'] = 'application/octet-stream;charset=utf-8'
 response.headers['content-disposition'] = 'attachment;filename=user.json'
 return response
 
if __name__ == '__main__':
 app.run(host='0.0.0.0', port=5005, debug=True)

这是一个非常简单的demo.

flask的定义我们不去关心了。这里最重要的是获取response,并且在response的headers中,加入content-type 定义为octet-stream 流的操作。另外一个key是 content-disposition,这里主要定义文件的名称。这两部完成之后,我们只需要return response即可,重点就在这两个header上,然后传入数据信息(这里我们定义了一个json,大家也可以定义其他文件,比如excel,当然 excel请大家查询一下对应的content-type。还是非常简单的,这个方法对于任何web框架都是用,比如我们常用的 django,tornado web.py 都是一样,只不过语法在不同的框架里,方法名和用法可能有简单区别,但换汤不换药,原理是一样的。

最后说一下用法,一般来说 下载的链接都是 get 所以前端只需要定义个 a标签 添加 download属性即可, demo如下:

文件下载

相关文章

精彩推荐