版本一:将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. Mac下安装pyenv

    mac 用virtualenv安装py3.6的虚拟环境报错(virtualenv -p /usr/bin/python3 env36), 解决的话需要安装zlib包, 然后去掉configure配置里 ...

  2. 数据可视化Echarts-实例

    数据可视化 Echarts 百度 数据可视化 hightCharts 1 数据可视化 D3 老外 -----------------------------当遇到个啥玩意儿,Echarts .high ...

  3. 使用Spring AOP实现MySQL读写分离

    spring aop , mysql 主从配置 实现读写分离,下来把自己的配置过程,以及遇到的问题记录下来,方便下次操作,也希望给一些朋友带来帮助.mysql主从配置参看:http://blog.cs ...

  4. 配置iis支持.json格式的文件

    配置iis支持.json格式的文件发现要让IIS支持json文件并不是单纯的添加mime这么简单啊,以下是设置方法:一.IIS 6 1. MIME设置:在IIS的站点属性的HTTP头设置里,选MIME ...

  5. 时间格式yyyyMMddHHmmss的大小写,和字母含义

    字母     日期或时间元素 表示 示例 G Era 标志符 Text AD y 年 Year 1996 ; 96 M 年中的月份 Month July ; Jul ; 07 w 年中的周数 Numb ...

  6. MyBatis(五):mybatis关联映射

    Mybatis中表与表之间的关系分为一下4类: 1)一对一 2)一对多 3)多对一 4)多对多 创建数据Demo表 数据库表: 用户表user:记录了购买商品的用户信息. 订单表orders:记录了用 ...

  7. Javascript 解读与思想

    Javascript 解读与思想 解读:对底层类库功能的理解 思想:对程序架构的部署思维

  8. 对Faster R-CNN的理解(2)

    2. 区域建议网络 区域建议网络(Regional Proposal Network, RPN),根据特征图上每一个点的向量,为这个点生成k个矩形建议框.每一个点输出的内容包括:reg层4个输出x.y ...

  9. 算法课笔记系列(七)—— 平摊分析Amortized Analysis

    本周的内容是Amortized Analysis,是对算法复杂度的另一种分析.它的基本概念是,给定一连串操作,大部分的操作是非常廉价的,有极少的操作可能非常昂贵,因此一个标准的最坏分析可能过于消极了. ...

  10. Java之Builder模式(并用OC实现了这种模式)

    本人在学习Java,直接先学习Netty框架,因为Netty框架是业界最流行的NIO框架之一,在学习的过程中,了解到Netty服务端启动需要先创建服务器启动辅助类ServerBootstrap,它提供 ...