SQLAlchemy 2.0:现代 Python ORM 模式
SQLAlchemy 2.0 引入了统一的 API,结合了 ORM 和 Core 的最佳特性。新方式
带类型注解的声明式模型
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
class User(Base):
__tablename__ = "users"
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str] = mapped_column(String(100))
异步会话
from sqlalchemy.ext.asyncio import AsyncSession
async with AsyncSession(engine) as session:
result = await session.execute(select(User))
users = result.scalars().all()
从 1.x 的重要变化
- Session.execute() 现在是主要查询接口
- select() 替代了 Query API
- Mapped[] 替代了 Column 注解
加载评论中...