flask 从mysql数据库中获取数据并导出 excel
时间: 2024-02-02 22:03:56 浏览: 138
要从 MySQL 数据库中获取数据并将其导出到 Excel,你可以使用 Flask、MySQL Connector 和 openpyxl 库。以下是一个简单的示例代码:
```python
from flask import Flask, make_response
import mysql.connector
from openpyxl import Workbook
app = Flask(__name__)
@app.route('/export-excel')
def export_excel():
# 连接到 MySQL 数据库
conn = mysql.connector.connect(
host='localhost',
user='root',
password='password',
database='database'
)
# 从数据库中获取数据
cursor = conn.cursor()
cursor.execute('SELECT * FROM table')
data = cursor.fetchall()
# 创建一个 Workbook 对象
wb = Workbook()
# 选择默认的工作表
ws = wb.active
# 将数据添加到工作表中
for row in data:
ws.append(row)
# 将 Workbook 对象保存到内存中
output = BytesIO()
wb.save(output)
# 创建一个响应对象并将 Excel 文件作为附件添加到响应中
response = make_response(output.getvalue())
response.headers['Content-Disposition'] = 'attachment; filename=example.xlsx'
response.headers['Content-Type'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
# 关闭数据库连接并返回响应
cursor.close()
conn.close()
return response
if __name__ == '__main__':
app.run()
```
在上面的代码中,我们首先连接到 MySQL 数据库,并从表中获取数据。然后,我们创建一个 Workbook 对象,并将数据添加到工作表中。接下来,我们将 Workbook 对象保存到内存中,并创建一个响应对象,将 Excel 文件作为附件添加到响应中。最后,我们关闭数据库连接并返回响应。请根据需要更改代码中的数据库连接和查询语句。
阅读全文