把时序数据库中的日志下载到本地. 大家都知道. 数据库里的数据 都是存在数据库里的(废话). 想把他下载到客户的本地. 有的同学第一反应是: 只有文件才能下载. 所以大多数同学会想到先把数据从数据库中读出来,然后写入到服务器中的某个文件夹下生成文件, 然后再下载. 其实这是非常不效率的方法, 最简单的方法是,我们从数据库中读取到文件后, 直接以流的形式让用户去下载.

这里我拿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框架做文件流下载相关推荐

  1. vba移动文件_利用NAME语句,给文件重命名

    大家好,我们今日讲解"VBA信息获取与处理"教程中第十七个专题"文件及文件夹信息的获取及操作"的第一节"判断文件及文件夹是否存在",这个专题 ...

  2. python根据url下载数据_利用Python如何实现根据URL地址下载并保存文件至对应目录...

    利用Python如何实现根据URL地址下载并保存文件至对应目录 发布时间:2020-11-16 14:23:11 来源:亿速云 阅读:58 作者:Leah 这篇文章将为大家详细讲解有关利用Python ...

  3. python脚本下载钉钉的文件_利用python下载钉钉群直播视频

    今年因为疫情的原因不能开学,所以很多学校都使用钉钉进行在线授课,但是在钉钉里面点击下载群直播回放的时候却发现: 真好,管理员设置了不允许下载回放. 这就完了吗?NoNoNo!既然正常途径下载不了,那么 ...

  4. python处理word或者pdf文件_利用python程序生成word和PDF文档的方法

    一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...

  5. python使用ttf文件_利用python工具生成彩色字体ttf

    之前研究过字体文件ttf的python脚本化生成方法,主要是利用fontforge的支持python脚本这一功能.现在最近手机市场上出现了几种彩色字体,这是怎么做到的呢?研究了一下,发现还是利用Pyt ...

  6. python用什么处理文件_利用Python如何快速处理文件

    利用Python如何快速处理文件 我之前要合并将近1000个CSV表格 每个表格共370列,约360行不等,列名相同 三个方案瞬间浮现在我眼前: 1.Ctrl C + Ctrl V--可以睡公司了: ...

  7. python分析pcap文件_利用Python库Scapy解析pcap文件的方法

    每次写博客都是源于纳闷,python解析pcap这么常用的例子网上竟然没有,全是一堆命令行执行的python,能用吗?玩呢? pip安装scapy,然后解析pcap: import scapy fro ...

  8. abaqus python 读取文件_利用Python修改Abaqus的inp文件(关键字)

    利用Python修改Abaqus的inp文件(关键字) Abaqus的关键字可以直接打开inp文件或者在Abaqus的key word里面直接修改,当然除了这个,还可以利用Python语言进行修改,也 ...

  9. python通过内置的什么函数打开一个文件_利用python进行文件操作

    这篇文章主要介绍了如何利用python进行文件操作,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非 ...

最新文章

  1. oracle数据库从入门到精通之三
  2. oauth2.0 原理
  3. write up:杂项 又一张图片,还单纯吗 --图片提取
  4. 深入理解Android 卷I 提供预定
  5. 数据中心操作人员:艰难地在针对VM构建的基础设施上运行容器
  6. ./configure:command not found 解决方法
  7. 测试总结(部分)---转载
  8. 不规则形状 前端_精度提升第一步:形状各异测区的像控点布设方案
  9. 【GYM-100889 D】Dicy Numbers【数学推导求解】
  10. 《数据结构》算法与算法设计
  11. GaussDB (for Cassandra) 数据库治理:大key与热key问题的检测与解决
  12. 原生JS获取元素在文档中的位置
  13. 程序员得浪漫--十款表白小程序 一个比一个浪漫 赶紧收藏起来吧!!!
  14. [学习笔记]Python for Data Analysis, 3E-9.绘图和可视化
  15. 企业微信禁用成员是什么意思?
  16. 企业邮箱如何发送国外邮件?2021知名企业邮箱网站排名
  17. 社交媒体中有哪些有趣的数据?能挖掘出哪些价值?
  18. 涨薪 50%,从小厂逆袭,坐上美团 L8 技术专家(面经 + 心得)
  19. 浏览器本地缓存:localStorage与sessionStorage
  20. 13.1-自己开发一个“单片机烧写工具”!不是开玩笑吧?原来如此^~^(OTA升级)

热门文章

  1. PMC联手云合作伙伴Canonical加入其Ubuntu OpenStack互通性实验室
  2. 《Python数据可视化编程实战》—— 1.2 安装matplotlib、Numpy和Scipy库
  3. php 日期相减 时分秒,PHP计算两个时间戳间隔的日时分秒的代码实例
  4. verilog实现多周期处理器之——(五)移动操作(通用数据传送)指令的实现
  5. 3d 根据弧长算角度_3D立体画,让你身临其境
  6. 总结新浪friendship接口
  7. Android中AMS工作原理,Android AMS启动详解
  8. javascript类功能代码集
  9. [转载] 生活小常识 :joke:
  10. ArcGIS制图技巧系列(3)—让地图更有立体感