版本一:将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. poj3614 Sunscreen(贪心+STL)

    https://vjudge.net/problem/POJ-3614 如果这不是优先队列专题里的,我可能不一定能想到这么做. 结构体命名得有点不好,解题中看着Edge这个不恰当的命名,思路老是断掉. ...

  2. java springboot2 jquery 抽奖项目源码

    java+springboot2+jquery+jdk8   实现的多种抽奖效果! 体验抽奖地址: http://47.98.175.6:8091/ 赞助获得源码!!!

  3. 免费 web 后台管理 网站

    使用java自主开发的后台管理软件, 访问地址:http://wx.yanquanguoke.top 登录账号:test   密码:test 欢迎大家使用,有什么想法的可以交流. 进群搜索微信号:a1 ...

  4. .Net转Java.05.为啥MySQL没有nolock

    今天忽然想到一个问题,原来为了提高SQL Server性能,公司规定查询语句一般都要加 WITH (NOLOCK)的 现在转Java了,用了MySQL为啥不提这个事情了? 先在MySQL里写了一个查询 ...

  5. 阿里云物联网平台体验(树莓派+Nodejs篇)

    我们在<阿里云物联网平台体验(树莓派+python篇)>里,写了通过Python语言开发云到端的物联网程序,本篇文章将介绍通过nodejs来实现类似功能. 同样在阿里云官方文档里已经有了一 ...

  6. 自己定义ViewGroup实现仿淘宝的商品详情页

    近期公司在新版本号上有一个须要. 要在首页加入一个滑动效果, 详细就是仿照X宝的商品详情页, 拉到页面底部时有一个粘滞效果, 例如以下图 X东的商品详情页,假设用户继续向上拉的话就进入商品图文描写叙述 ...

  7. Git-Book

    关于git的文档https://git-scm.com/book/zh/v2

  8. [古怪问题] Marshal.GetActiveObject 在管理员模式下无法正常运行

    问题: var obj = Marshal.GetActiveObject("PowerPoint.Application") 该代码在管理员模式下运行无法正常获取正在运行的 PP ...

  9. centos mysql密码忘记了如何修改

    # /etc/init.d/mysql stop# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &# mysq ...

  10. tesseract 4.0 ocr图像识别利器,可识别文字。图片越高清越准确

    //总地址 https://github.com/tesseract-ocr/tesseract/wiki //windows exe tesseract 4.0下载: https://github. ...