什么是 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 实现版本控制(了解更多

图片展示

SQLAlchemy ORM
数据库操作

学习建议

  1. 先掌握 Python 基础语法
  2. 学习 SQLAlchemy 的核心概念(如 Session、Query)
  3. 实践数据库迁移工具 Alembic
  4. 探索高级特性(如 自定义类型、事件监听)

👉 点击进入 SQLAlchemy 官方文档 深入学习更多内容!