版本一:将MySQL数据写入到excel(xsl)文件并下载到默认文件夹(一般问电脑的下载文件夹里面),并显示特效到前端页面。

flask框架连接MySQL,我们使用pymsql这个工具,如下操作:

from flask import Flask
import pymysql
import xlwt
from io import BytesIO
from flask import make_response db = pymysql.connect(host='127.0.0.1',port=3306,user='user', passwd='pwd', db='db_name', charset='utf8') # 创建链接 def data_db(): # 去数据库取数据,假设数据库表只有4个字段
sql = """
select * from table_name;
"""
cc = db.cursor() # 其实就是用来获得python执行Mysql命令的方法,也就是
我们所说的操作游标
cc.execute(sql) # 真正执行sql语句
cn = cc.fetchall() # 接收全部的返回结果行row return cn # 返回 app = Flask(__name__) @app.route('/index_up') # 设置路由
def index_list(): # 执行视图函数 ret = data_db() # 获取数据
wb = xlwt.Workbook(encoding='utf-8') # 实例化,有encoding和style_compression参数
ws = wb.add_sheet("", cell_overwrite_ok=True) # Workbook的方法,生成名为111.xls文件
row0 = ['字段1', '字段2', '字段3', '字段4'] # 指定xls文件的字段 for i in range(0, len(row0)): # 将这些字段写入111.xls文件
ws.write(0, i, row0[i])
k = 1
for i in ret: # 循环每一列
for j in range(4): # 在每列添加数据
ws.write(k, j, i[j])
k += 1 sio = BytesIO() # 将获取的数据在内存中写,有时会用到StringIO()
wb.save(sio) # 将文件流保存
sio.seek(0) # 光标 response = make_response(sio.getvalue()) #
response.headers['Content-type'] = 'application/vnd.ms-excel' # 指定返回的类型
response.headers['Transfer-Encoding'] = 'chunked'
response.headers['Content-Disposition'] = 'attachment;filename=111.xls' # 设定用户浏览器显示的保存文件名 return response # 返回response,浏览器会出现如下效果,如果返回其他,比如None就会只下载不在浏览器提示。 if __name__ == '__main__':
app.run()

版本二:将MySQL的数据写入到excel中并下载到指定路径里面

from flask import Flask
import pymysql
import xlwt
from io import BytesIO
from flask import make_response db = pymysql.connect(host='127.0.0.1',port=3306,user='user', passwd='pwd', db='db_name', charset='utf8') # 创建链接 def data_db(): # 去数据库取数据,假设数据库表只有4个字段
sql = """
select * from table_name;
"""
cc = db.cursor() # 其实就是用来获得python执行Mysql命令的方法,也就是
我们所说的操作游标
cc.execute(sql) # 真正执行sql语句
cn = cc.fetchall() # 接收全部的返回结果行row return cn # 返回 app = Flask(__name__) @app.route('/index_up') # 设置路由
def index_list(): # 执行视图函数 ret = data_db() # 获取数据
wb = xlwt.Workbook(encoding='utf-8') # 实例化,有encoding和style_compression参数
ws = wb.add_sheet("", cell_overwrite_ok=True) # Workbook的方法,生成名为111.xls文件
row0 = ['字段1', '字段2', '字段3', '字段4'] # 指定xls文件的字段 for i in range(0, len(row0)): # 将这些字段写入111.xls文件
ws.write(0, i, row0[i])
k = 1
for i in ret: # 循环每一列
for j in range(4): # 在每列添加数据
ws.write(k, j, i[j])
k += 1 today = str(datetime.datetime.now())
file_name = "day_data" + today[0:13] + ".xls" fp = r"E:/我的资料/inner_ctrl01/ttt"
wb.save(file_name)
shutil.move(file_name, os.path.join(fp, file_name)) return 'ok' # 必须return,并且不能return 空 if __name__ == '__main__':
app.run()

flask使用pymysql连接MySQL,生成xls文件并下载到本地的更多相关文章

  1. Python3中使用PyMySQL连接Mysql

    Python3中使用PyMySQL连接Mysql 在Python2中连接Mysql数据库用的是MySQLdb,在Python3中连接Mysql数据库用的是PyMySQL,因为MySQLdb不支持Pyt ...

  2. Python3.x使用PyMysql连接MySQL数据库

    Python3.x使用PyMysql连接MySQL数据库 由于Python3.x不向前兼容,导致Python2.x中的很多库在Python3.x中无法使用,例如Mysqldb,我前几天写了一篇博客Py ...

  3. Python 3.2: 使用pymysql连接Mysql

    在python 3.2 中连接MYSQL的方式有很多种,例如使用mysqldb,pymysql.本文主要介绍使用Pymysql连接MYSQL的步骤 1        安装pymysql ·       ...

  4. python基础学习24----使用pymysql连接mysql

    使用pymysql连接mysql 安装pymysql pymysql安装可以通过两种方式 使用pip安装 首先简单说一下pip的使用方法 获取帮助 pip --help 升级 pip pip inst ...

  5. Python3.x:使用PyMysql连接Mysql数据库

    Python3.x:使用PyMysql连接Mysql数据库 Python3.x完全不向前兼容,导致Python2.x中可以正常使用的库,到了Python3就用不了: 比如说mysqldb,目前MySQ ...

  6. 使用PyMySQL连接MySQL错误

    使用PyMySQL连接MySQL错误 之前写了一个小项目,今天突然想起来,准备优化一下,但是原本好好的项目竟然跑不起来了 emmm....我真的啥都没干呀 具体错误是这样的: Traceback (m ...

  7. pycharm pymysql连接mysql 报错 pymysql.err.InterfaceError: (0, '')

    pycharm  pymysql连接mysql  执行MySQL操作遇到以下报错信息: conn.query(q) File "C:\Software\Python37\lib\site-p ...

  8. 在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all

    在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all 前天来了个新需求, 有一个授权书的文件要点击下载, 需要在前端生成, ...

  9. PHP通过sql生成CSV文件并下载,PHP实现文件下载

    /** * PHP通过sql生成CSV文件并下载 * @param string $sql 查询sql,结果为二维数组 * @param array $title 数据,CSV文件标题 * @para ...

随机推荐

  1. JSAP101

    JSAP101 1.DOM 1)文档对象模型 文档:把一个Html文件看成一个文档,所以把这个文档看成一个对象.XML文件也可以看成一个文件.XML侧重于存储数据,html主要以展示为主.一个页面就是 ...

  2. java 遍历Map的4种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  3. [转]jquery异步ajax与服务器通信过程中如何通过then方法链式传递多层数据

    原文:https://www.cnblogs.com/fullstack-yang/p/6115983.html doSubmit: function(){ var dtd = $.Deferred( ...

  4. mysql YEARWEEK(date[,mode]) 函数 查询上周数据 以及本周数据

    通常使用下边sql即可(如果数据库设置了周一为一周起始的话):  查询上周数据(addtime为datetime格式)  SELECT id,addtime FROM mall_order WHERE ...

  5. GoAccess日志分析工具

    1.1 GoAccess简介 GoAccess是一个非常良心的开源软件,它的良心之处体现在如下方面: 1)安装简单: 2)操作容易: 3)界面酷炫: GoAccess 官网 https://goacc ...

  6. linux上ssh免密登录原理及实现

    因为我的服务器集群需要回收日志到中央进行统一处理,所以需要建立ssh互信关系实现免密登录.关于ssh的使用大家可能都很熟悉了,我们今天主要来讲下ssh连接和免密登录的原理. scp 传输文件 scp( ...

  7. TCP 协议简析

    TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的.可靠的.基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接.它是个超级麻烦的协议, ...

  8. 浅析LRC歌词文件

    [时间:2018-12] [状态:Open] [关键词:字幕,LRC,歌词,lyric,文件格式] 0 引言 几年前(2010年左右),网络音乐流行与免费的时代,网上有大量的mp3,使用比较常见的播放 ...

  9. ffmpeg-hls实现分析

    [时间:2018-05] [状态:Open] [关键词:流媒体,stream,HLS, ffmpeg, demuxer,avformat] 0 引言 本文将关注于FFmpeg中的HLS相关实现,相关代 ...

  10. 华为S12700 NQA配置

    首先,nqa功能是需要授权的. 以下以ICMP配置方式示例: 在配置ICMP测试之前,需要NQA客户端与被测试设备间路由可达.(ICMP测试提供类似于普通ping命令的功能,但输出信息更为丰富.) 请 ...