· 约 2 分钟

26-FastAPI进阶-ORM操作数据-新增数据

  • FastAPI
  • Python

学习目标

核心概念

代码示例

from pydantic import BaseModel, Field
from sqlalchemy import select


class UserCreate(BaseModel):
    name: str = Field(min_length=2, max_length=20)
    age: int = Field(ge=1, le=120)
    email: str
    department: str
    is_active: bool = True


@app.post("/users")
def create_user(payload: UserCreate, db: DbSession):
    exists = db.scalar(select(User).where(User.email == payload.email))
    if exists:
        raise HTTPException(status_code=400, detail="邮箱已存在")

    user = User(**payload.model_dump())
    db.add(user)
    db.commit()
    db.refresh(user)
    return UserOut.model_validate(user)

案例理解

易错点

我的补充