使用python下载文件_利用python web框架做文件流下载
把时序数据库中的日志下载到本地. 大家都知道. 数据库里的数据 都是存在数据库里的(废话). 想把他下载到客户的本地. 有的同学第一反应是: 只有文件才能下载. 所以大多数同学会想到先把数据从数据库中读出来,然后写入到服务器中的某个文件夹下生成文件, 然后再下载. 其实这是非常不效率的方法, 最简单的方法是,我们从数据库中读取到文件后, 直接以流的形式让用户去下载.
这里我拿python flask框架来做例子,其实非常简单,步骤一共有3个
1: 取出数据, 我们默认为json文件吧
2: 在response中加入指定的header
3: 将数据返回.
那么废话少说,我们直接上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 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如下:
1
<
a
href
=
"xxxx/download"
download>文件下载
a
>
作者:deweizhang
链接:https://www.imooc.com/article/305068
转自来源:慕课网
使用python下载文件_利用python web框架做文件流下载相关推荐
- vba移动文件_利用NAME语句,给文件重命名
大家好,我们今日讲解"VBA信息获取与处理"教程中第十七个专题"文件及文件夹信息的获取及操作"的第一节"判断文件及文件夹是否存在",这个专题 ...
- python根据url下载数据_利用Python如何实现根据URL地址下载并保存文件至对应目录...
利用Python如何实现根据URL地址下载并保存文件至对应目录 发布时间:2020-11-16 14:23:11 来源:亿速云 阅读:58 作者:Leah 这篇文章将为大家详细讲解有关利用Python ...
- python脚本下载钉钉的文件_利用python下载钉钉群直播视频
今年因为疫情的原因不能开学,所以很多学校都使用钉钉进行在线授课,但是在钉钉里面点击下载群直播回放的时候却发现: 真好,管理员设置了不允许下载回放. 这就完了吗?NoNoNo!既然正常途径下载不了,那么 ...
- python处理word或者pdf文件_利用python程序生成word和PDF文档的方法
一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...
- python使用ttf文件_利用python工具生成彩色字体ttf
之前研究过字体文件ttf的python脚本化生成方法,主要是利用fontforge的支持python脚本这一功能.现在最近手机市场上出现了几种彩色字体,这是怎么做到的呢?研究了一下,发现还是利用Pyt ...
- python用什么处理文件_利用Python如何快速处理文件
利用Python如何快速处理文件 我之前要合并将近1000个CSV表格 每个表格共370列,约360行不等,列名相同 三个方案瞬间浮现在我眼前: 1.Ctrl C + Ctrl V--可以睡公司了: ...
- python分析pcap文件_利用Python库Scapy解析pcap文件的方法
每次写博客都是源于纳闷,python解析pcap这么常用的例子网上竟然没有,全是一堆命令行执行的python,能用吗?玩呢? pip安装scapy,然后解析pcap: import scapy fro ...
- abaqus python 读取文件_利用Python修改Abaqus的inp文件(关键字)
利用Python修改Abaqus的inp文件(关键字) Abaqus的关键字可以直接打开inp文件或者在Abaqus的key word里面直接修改,当然除了这个,还可以利用Python语言进行修改,也 ...
- python通过内置的什么函数打开一个文件_利用python进行文件操作
这篇文章主要介绍了如何利用python进行文件操作,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非 ...
最新文章
- oracle数据库从入门到精通之三
- oauth2.0 原理
- write up:杂项 又一张图片,还单纯吗 --图片提取
- 深入理解Android 卷I 提供预定
- 数据中心操作人员:艰难地在针对VM构建的基础设施上运行容器
- ./configure:command not found 解决方法
- 测试总结(部分)---转载
- 不规则形状 前端_精度提升第一步:形状各异测区的像控点布设方案
- 【GYM-100889 D】Dicy Numbers【数学推导求解】
- 《数据结构》算法与算法设计
- GaussDB (for Cassandra) 数据库治理:大key与热key问题的检测与解决
- 原生JS获取元素在文档中的位置
- 程序员得浪漫--十款表白小程序 一个比一个浪漫 赶紧收藏起来吧!!!
- [学习笔记]Python for Data Analysis, 3E-9.绘图和可视化
- 企业微信禁用成员是什么意思?
- 企业邮箱如何发送国外邮件?2021知名企业邮箱网站排名
- 社交媒体中有哪些有趣的数据?能挖掘出哪些价值?
- 涨薪 50%,从小厂逆袭,坐上美团 L8 技术专家(面经 + 心得)
- 浏览器本地缓存:localStorage与sessionStorage
- 13.1-自己开发一个“单片机烧写工具”!不是开玩笑吧?原来如此^~^(OTA升级)
热门文章
- PMC联手云合作伙伴Canonical加入其Ubuntu OpenStack互通性实验室
- 《Python数据可视化编程实战》—— 1.2 安装matplotlib、Numpy和Scipy库
- php 日期相减 时分秒,PHP计算两个时间戳间隔的日时分秒的代码实例
- verilog实现多周期处理器之——(五)移动操作(通用数据传送)指令的实现
- 3d 根据弧长算角度_3D立体画,让你身临其境
- 总结新浪friendship接口
- Android中AMS工作原理,Android AMS启动详解
- javascript类功能代码集
- [转载] 生活小常识 :joke:
- ArcGIS制图技巧系列(3)—让地图更有立体感