FastAPI可以通过SQLAlchemy将其轻松的适应于任何的数据库。SQLAlchemy是一个ORM(object-relational mapping)的框架。在ORM中,你创建一个类就会通过SQLAlchemy将其自动转成一张表,在类中的每一个属性就会将其转成表中的字段。
需要安装
1 | pip install sqlalchemy pip install pymysql |
统一来管理数据库相关:
1 | ├─db |
database.py 数据库配置相关
在数据库相关的配置文件中,首先创建一个SQLAlchemy的”engine”,然后创建SessionLocal实例进行会话,最后创建模型类的基类。
1 | from sqlalchemy import create_engine |
models.py 数据库模型表
通过数据库配置文件中的基类来创建模型类。
1 | from sqlalchemy import Boolean, Column, Integer, String |
schemas.py 模型验证
定义请求参数模型验证与响应模型验证的Pydantic模型,其中响应模型中设置orm_mode=True参数,表示与ORM模型兼容,因为后续中返回的数据库查询是orm模型,通过设置这个参数可以将orm模型通过pydantic模型进行验证。
1 | from pydantic import BaseModel |
crud.py 数据库操作相关
通过传入数据库连接以及参数等进行数据库操作,包括创建用户、查询用户等,返回的是orm模型对象。
1 | from sqlalchemy.orm import Session |
调用验证
1 | Base.metadata.create_all(bind=engine) #数据库初始化,如果没有库或者表,会自动创建 |
DB:
1 | mysql> desc users; |