flask使用pymysql连接MySQL,生成xls文件并下载到本地
版本一:将MySQL数据写入到excel(xsl)文件并下载到默认文件夹(一般问电脑的下载文件夹里面),并显示特效到前端页面。
flask框架连接MySQL,我们使用pymsql这个工具,如下操作:
from flask import Flask import pymysql import xlwt from io import BytesIO from flask import make_responsedb = 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() # 接收全部的返回结果行rowreturn 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("111", 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 = 1for i in ret: # 循环每一列for j in range(4): # 在每列添加数据ws.write(k, j, i[j]) k += 1sio = 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_responsedb = 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() # 接收全部的返回结果行rowreturn 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("111", 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 = 1for i in ret: # 循环每一列for j in range(4): # 在每列添加数据 ws.write(k, j, i[j])k += 1today = 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()
转载于:https://www.cnblogs.com/aaronthon/p/10245894.html
flask使用pymysql连接MySQL,生成xls文件并下载到本地相关推荐
- 【PHPExcel】生成xls文件并下载
//错误处理 时区设置 error_reporting(E_ALL); ini_set('display_errors',TRUE); ini_set('display_startup_errors' ...
- phpmywind 查询结果生成csv文件并下载到本地
我这里使用php的form表单. 当我点击表单按钮时,自动跳到exportDate.php页面,并执行exportDate.php页面的代码. 显示下载按钮的页面: <form method=& ...
- python使用pymysql连接mysql_python3使用PyMysql连接mysql数据库的简单示例
这篇文章主要为大家详细介绍了python3使用PyMysql连接mysql数据库的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小 ...
- 【Python】PyMySQL 连接 MySQL数据库
PyMySQL连接 Mysql 安装 PyMySQL PyMySQL 连接数据库 创建数据库(数据库必须存在) 创建数据表 插入操作 查询操作 更新操作 删除操作 综合案例 Connection Ob ...
- 记录python使用pymysql连接mysql数据库,使用impyla、ibis-framework[impala]连接hive\impala(kerberos)数据库(备以后查阅)
记录python使用pymysql连接mysql数据库,使用impyla.ibis-framework[impala]连接hive\impala(kerberos)数据库(备以后查阅) 连接mysql ...
- t4模板 mysql_.net core 用T4模板连接MySql生成实体类
.net core 用T4模板连接MySql生成实体类标题 4,把MySql.Data.dll放在项目根目录,也可以自行更改. 在之前参考那个博友的文章,他的是连接SQL server的. 下面是参考 ...
- Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告
在学习 Python3 爬虫关系型数据库储存时,利用 pymysql 连接 MySQL 建表,测试用的代码如下,第一句 SQL 用于获取当前 MySQL 的版本信息,第二句 SQL 执行创建 spid ...
- pymysql连接mysql数据库try_pymysql 连接数据库和基本使用
pymysql 连接mysql数据库import pymysql.cursors # 连接数据库配置信息 connection = pymysql.connect(host='localhost', ...
- myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法)
myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法) 参考文章: (1)myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法) (2)https://www. ...
- Linux中连接mysql执行sql文件
Linux中连接mysql执行sql文件 数据量小的时候可以把sql语句内容粘贴执行,但是文件很大的时候,这样执行效率很慢很慢,需要使用source执行sql文件 1.客户端连接mysql数据库 [r ...
最新文章
- golang学习笔记————字符串
- 每日一皮:资深程序员调试代码的样子...
- ssh 用密码连接不上、查看openSSH 的版本、CentOS - 升级openSSH,修复安全漏洞
- mysql-备份及关联python
- webpack.config.js 参数详解
- 字典树 ZOJ1109 HDU1251 PKU1204 HDU1075
- VS Code编写html(2)
- WordPress实践:上传文件时提示“缺少临时文件夹”
- 万物皆可Graph | 当信息检索遇上图神经网络
- linux下搭建uvm环境,转:使用QuestaSIM进行UVM仿真环境搭建
- Abseil之Copies, Abbrv
- stm32采集脉冲信号_外部脉冲实现ADC采样的问题 STM32f103VE
- 最近开发的NFC读写器控制软件
- 离散信号(七)| 离散傅里叶变换(DFT)推导
- html怎么叠加透明图片,css – 您可以在图片上叠加透明div
- DOM系列之排他思想
- Android开发之音乐播放器所遇到的问题
- 设置linux服务器同步时间
- 逻辑运算符以及逻辑表达式
- java camel exchange类_让Camel处理各种URI类型
热门文章
- 【图像重建】基于matlab ASTRA算法图像重建【含Matlab源码 090期】
- 【优化调度】基于matlab粒子群算法求解梯级水电站调度优化问题【含Matlab源码 065期】
- 契税申报期限_纳税申报的5个小常识,会计不知道,真不适合干会计 D1
- c语言注释部分两侧的分界符号分别是,C语言习题及解答.doc
- 苹果投影仪_无线投屏才是真正的王道,明基智能商务投影仪E580
- 从入门到放弃之promise用法(上)
- 高并发、高访问量如何计算【测试评估】
- android 实现应用程序后台运行的说明
- C#播放流媒体的几种方法
- 实用网站、软件、App分享