· 约 3 分钟

22-FastAPI进阶-ORM操作数据-条件查询-模糊查询

  • FastAPI
  • Python

学习目标

核心概念

代码示例

from typing import Annotated

from fastapi import Query
from sqlalchemy import select


@app.get("/users/search")
def search_users(
    db: DbSession,
    keyword: Annotated[str, Query(min_length=1)],
):
    stmt = select(User).where(User.name.contains(keyword)).order_by(User.id)
    users = db.scalars(stmt).all()
    return [UserOut.model_validate(user) for user in users]


@app.get("/users/search-email")
def search_email_users(db: DbSession):
    stmt = select(User).where(User.email.startswith("admin"))
    users = db.scalars(stmt).all()
    return [UserOut.model_validate(user) for user in users]

案例理解

易错点

我的补充