什么是 SQLAlchemy?
SQLAlchemy 是 Python 中最强大的 ORM 工具之一,能够将数据库操作与面向对象编程无缝衔接。它支持多种数据库(如 PostgreSQL、MySQL、SQLite 等),并提供灵活的查询构建方式。
快速上手案例
以下是一个使用 SQLAlchemy 的简单示例,展示如何定义模型、创建表并执行查询:
from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.orm import sessionmaker, relationship
from sqlalchemy.ext.declarative import declarative_base
# 初始化数据库连接
engine = create_engine('sqlite:///example.db', echo=True)
Base = declarative_base()
# 定义模型类
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(50))
email = Column(String(100))
addresses = relationship("Address", back_populates="user")
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
street = Column(String(100))
city = Column(String(50))
user_id = Column(Integer, ForeignKey('users.id'))
user = relationship("User", back_populates="addresses")
# 创建表
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 添加数据
new_user = User(name="张三", email="zhangsan@example.com")
session.add(new_user)
session.commit()
# 查询数据
user = session.query(User).filter_by(name="张三").first()
print(f"用户 {user.name} 的地址: {user.addresses}")
关键功能解析
- ORM 映射:通过
declarative_base()
简化模型定义 - 关系管理:使用
relationship()
处理多对多/一对多关联 - 查询优化:支持链式查询(如
filter_by()
、join()
) - 数据库迁移:结合 Alembic 实现版本控制(了解更多)
图片展示
学习建议
- 先掌握 Python 基础语法
- 学习 SQLAlchemy 的核心概念(如 Session、Query)
- 实践数据库迁移工具 Alembic
- 探索高级特性(如 自定义类型、事件监听)
👉 点击进入 SQLAlchemy 官方文档 深入学习更多内容!