1.fastapi介绍
一个用于构建 API 的现代、快速(高性能)的web框架。 特点 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一。 高效编码:提高功能开发速度约 200% 至 300%。 更少bug:减少约 40% 的人为(开发者)导致错误。 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。 简单:设计的易于使用和学习,阅读文档的时间更短。 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。 健壮:生产可用级别的代码。还有自动生成的交互式文档。
1.1安装
pip install fastapi
pip install "uvicorn[standard]"
1.2小案例
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get('/')
async def index():
return 'ok'
@app.get('/test2')
async def test2():
return 'oktest12'
if __name__ == "__main__":
uvicorn.run(app="main:app", reload=True, debug=True,host="localhost",port=5001)
uvicorn main:app 命令含义如下: main:main.py 文件(一个 Python "模块")。 app:在 main.py 文件中通过 app = FastAPI() 创建的对象。 --reload:让服务器在更新代码后重新启动。仅在开发时使用该选项。
1.3运行
python main.py
1.4查看文档
http://127.0.0.1:8000/docs
1.5返回json
from fastapi import FastAPI
from fastapi.responses import JSONResponse
import uvicorn
app = FastAPI()
@app.api_route('/test',methods=['GET','POST','PUT'])
def test():
return JSONResponse({"code":200})
if __name__ == "__main__":
uvicorn.run(app="main:app", reload=True, debug=True,host="localhost",port=5002)
2.sqlalchemy
1. 安装 SQLAlchemy
pip install sqlalchemy
2.SQLAlchemy 连接 MySQL
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# 数据库连接配置
SQLALCHEMY_DATABASE_URI = (
"mysql+pymysql://root:123456@localhost/fastapi_db?charset=utf8mb4"
# 用户:密码@服务器/数据库?参数
)
# 创建数据库引擎
engine = create_engine(SQLALCHEMY_DATABASE_URI)
# 创建数据库会话
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# 声明基类
Base = declarative_base()