sqlalchemy orm查询数据库后使用pandas用函数的方式导出excel后在视图函数中return给前台
时间: 2024-03-27 16:35:15 浏览: 140
SQLalchemy-Challenge:使用SQLAlchemy,ORM查询,Pandas和Matplotlib在气候数据库上进行气候分析和数据探索
可以按照以下步骤进行操作:
1. 使用 SQLAlchemy ORM 进行数据库查询,获取数据。
```python
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from your_module import Base, YourModel
engine = create_engine('mysql+pymysql://username:password@host:port/database')
Session = sessionmaker(bind=engine)
session = Session()
data = session.query(YourModel).all()
```
2. 将查询到的数据转换为 pandas DataFrame。
```python
import pandas as pd
df = pd.read_sql(session.query(YourModel).statement, session.bind)
```
3. 定义导出 Excel 的函数。
```python
from flask import make_response
import io
def export_excel(df):
output = io.BytesIO()
writer = pd.ExcelWriter(output, engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
output.seek(0)
response = make_response(output.getvalue())
response.headers['Content-Type'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
response.headers['Content-Disposition'] = 'attachment; filename=export.xlsx'
return response
```
4. 在视图函数中调用导出 Excel 的函数,并返回给前端。
```python
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/export')
def export():
df = pd.read_sql(session.query(YourModel).statement, session.bind)
return export_excel(df)
```
这样,当用户访问 `/export` 路径时,就会自动下载导出的 Excel 文件。
阅读全文