SQLAlchemy 是 Python 编程语言中使用最广泛、最强大的 数据库操作工具库,它的作用是:

帮助你用 Python 更方便、高效、安全地操作数据库(如 MySQL、PostgreSQL、SQLite 等)

假设你原本用原生 SQL 写查询:

SELECT * FROM users WHERE id = 1;

用 Python 和 SQLAlchemy,可以这样写:

user = session.query(User).filter_by(id=1).first()

你不需要拼接 SQL 字符串,SQLAlchemy 会自动把这段 Python 代码翻译成 SQL 语句并执行,结果是一个 User 对象。

SQLAlchemy 主要做什么?

功能 描述
🧩 ORM(对象关系映射) 将数据库的表和字段映射成 Python 的类和属性。
🧮 SQL 构建器 用 Python 构建 SQL 查询,而不是写原始 SQL 字符串。
🔄 数据库事务管理 提供统一的连接池、事务提交、回滚控制。
🛡️ 安全性 自动防止 SQL 注入。
🔌 多数据库支持 支持 MySQL、PostgreSQL、SQLite、Oracle、SQL Server 等。

SQLAlchemy 的两种使用方式:

模式 简介 适合谁
Core 模式 写“类 SQL”的 Python 语法,偏向底层原理 精细控制 SQL 的开发者
ORM 模式 将表映射为类,更 OOP,使用简单 绝大多数 Python 项目推荐

ORM 示例

from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import declarative_base, sessionmaker

Base = declarative_base()

# 定义一个 User 表对应的类
class User(Base):
__tablename__ = ‘users’
id = Column(Integer, primary_key=True)
name = Column(String)

# 连接数据库
engine = create_engine(‘sqlite:///test.db’)
Base.metadata.create_all(engine)

# 操作数据
Session = sessionmaker(bind=engine)
session = Session()

# 添加新用户
new_user = User(name=’Alice’)
session.add(new_user)
session.commit()

# 查询
user = session.query(User).filter_by(name=’Alice’).first()
print(user.id, user.name)

✅ 使用 SQLAlchemy 的优势:

  • 写法更清晰(面向对象)

  • 自动防止 SQL 注入

  • 支持数据库迁移(配合 Alembic 工具)

  • 易于维护、扩展、调试

🚀 常见使用场景:

  • Web 框架(如 Flask、FastAPI、Django(部分))的数据操作层

  • 数据分析任务中的数据库读写

  • 数据清洗、定时任务等脚本中数据库连接

作者 admin

百度广告效果展示