模型类
2026/4/25...大约 1 分钟
Pydantic模型类和Sqlalchemy.Orm模型类的用法
pydantic模型类继承了basemodel,用于中间运算 sqlalchemy.orm模型类继承了declarative_base,用于数据库操作
简单介绍pydantic模型类
#创建一个pydantic模型类
from pydantic import BaseModel
class tmz_pydantic(BaseModel):
id: int = Field(... , description = '序列')
name: str = Field(... , description = '名称')多用于路径函数中的参数进行一些增删查改的行为,然后转成Orm模型类提交到数据库
简单介绍sqlalchemy.orm模型类
#创建一个sqlalchemy.orm模型类
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class tmz_orm(Base):
__tablename__ = 'tmz_model'
id = Mapped[int] = mapped_column(primary_key = True)
name = Mapped[str] = mapped_column(nullable = False)直接与数据库操作,但是不直接参与增删查改的行为
使用实例
from fastapi import FastAPI, Depends
from sqlalchemy.ext.asyncio import AsyncSession
@app.post("/test_model")
async def add_book( book: tmz_pydantic, db: AsyncSession = Depends(get_database) ):
book_obj = tmz_orm(**book.__dict__) # 创建orm对象 先转成字典然后展开
db.add(book_obj)
await db.commit()
return book关于tmz_model(**book.__dict__) __dict__将pydantic模型转成字典,**操作将字典展开成参数,最后转成orm模型对象 接着可以使用操作数据库的方法add(),commit()等提交到数据库