用途:为 Python/FastAPI 项目提供编码规范速查,可在编写 Python 代码或审查 FastAPI 项目时参考。
主要能力: 分层架构:Router → Service → Repository → Database,每层只调用其下一层。 Pydantic v2:区分 Create/Update/Response schema;用 ConfigDict(from_attributes=True) 集成 ORM;使用 str | None 语法而非 Optional[str]。 异步模式:I/O 路由用 async def,CPU 密集型用普通 def;用 lifespan 上下文管理器而非 on_event;外部 HTTP 调用用 httpx.AsyncClient。 软删除:在 SQLAlchemy 模型上使用 SoftDeleteMixin,所有查询中过滤 where(Model.deleted_at.is_(None))。 配置:统一用 pydantic-settings,绝不硬编码密钥、URL 或魔法数字。 分页:所有列表端点使用通用 PaginatedResponse[T],始终返回 total、page、limit、has_more。
注意事项:async def 路由调用阻塞代码(如 time.sleep() 或同步数据库驱动)会阻塞整个事件循环,纯 CPU 工作应使用普通 def 由 FastAPI 在线程池中运行;datetime.utcnow() 自 Python 3.12 起已弃用,改用 datetime.now(UTC);Pydantic 中可变默认值对简单字段可用,复杂嵌套默认值应使用 Field(default_factory=list);from_attributes=True 取代 orm_mode=True,使用旧配置会静默失效;SQLAlchemy 的 Column() 为旧写法,推荐 Mapped[type] 配合 mapped_column()。
限制:资料未提供安装命令、代码示例全文、收费信息及具体平台要求。