10行代码实现的接口平台:基于pandas和Flask
初衷
基于python数据分析人员都非常熟悉pandas库,pandas库利用read_sql_query方法可以方便的从数据库中查询数据,也可以方便的把数据转换为json格式。
在有些场景下,比如data_v需要以接口作为后端,那么有没有一个简易的方法将dataframe快速的输出为接口呢?
利用Flask可以实现。
环境
linux操作系统
anoconda
代码
# 创建一个python文件
import pandas as pd
import json
from sqlalchemy import create_engine
from flask import Flask
app=Flask(__name__)
db = create_engine('mysql+pymysql://user:pass@localhost/database_name')
def get_df(sql):
df = pd.read_sql_query(sql,db)
return df.to_json(orient='records',force_ascii=False)
@app.route('/')
def hello():
return get_df('select * from company')
flask的route功能非常强大,后续可以借此实现各种灵活的功能。
# 启动flask
export FLASK_APP=hello.py #在环境变量中指定flask的入口
export FLASK_ENV=development #设置为开发环境
nohup flask run --host=0.0.0.0 2>&1 & #启动flask,后台运行
在浏览器中输入ip:5000,即可看到接口输出的结果