SuperAPI AI 工具集

sqlalchemy-patterns

编程与开发

查看项目

更新于 10-16 00:03

技能介绍

用途:面向构建数据库应用的 Python 开发者,提供 SQLAlchemy 2.0 在模型、查询和数据访问方面的综合参考。

主要能力:

  • 引擎配置:同步 create_engine 与异步 create_async_engine(PostgreSQL + asyncpg),含 pool_size、max_overflow、pool_pre_ping 等连接池参数。
  • 模型定义:采用 2.0 风格的 Mapped、mapped_column、DeclarativeBase,覆盖字段、默认值、外键、复合索引。
  • 关系模式:一对多、多对多(Table 中间表)、自引用,使用 back_populates 与 cascade。
  • 查询:select 语句、指定列查询、异步查询、连接与预加载(selectinload),以及 count、group_by、having 等聚合。
  • 仓储模式:泛型 BaseRepository 提供 get_by_id、get_all、create、update、delete,并支持子类扩展。
  • 查询优化:N+1 问题与预加载解决方案、批量 insert/update、连接池配置。
  • 集成与事务:FastAPI 依赖注入 get_db,事务上下文 db.begin() 与 with_for_update 行锁。

使用方式:文档以代码示例形式给出,可按需将片段集成到项目中。例如同步引擎: engine = create_engine("postgresql://user:pass@localhost/db", pool_size=5, max_overflow=10, pool_pre_ping=True, echo=True) 异步引擎使用 asyncpg 驱动。

适用场景:需要规范数据访问层的 Python 后端项目,尤其是使用异步框架(如 FastAPI)并关注查询性能与事务一致性的场景。

限制:资料未提供安装命令、版本要求、具体性能数据、收费信息或平台限制;示例中部分代码未给出完整导入与运行上下文,实际使用时需按项目环境调整。

检查清单:使用 2.0 风格、正确的关系定义、级联规则、常用列索引、异步用于 I/O 密集应用、预加载防止 N+1、连接池配置、仓储模式、事务与批量操作。