· 约 3 分钟
17-FastAPI进阶-ORM简介及安装
学习目标
- 理解 ORM 的基本作用
- 明白为什么 FastAPI 项目经常会配合 ORM 使用
- 完成 SQLAlchemy 环境准备
核心概念
- ORM 全称是 Object Relational Mapping,对象关系映射。
- 它的作用是把“数据库中的表和字段”映射成“Python 中的类和属性”。
- 不用 ORM 时,我们经常直接写 SQL;用了 ORM 之后,可以更多地通过 Python 对象操作数据。
- 对初学者来说,ORM 最大的价值有三个:
- 代码更接近 Python 思维
- 查询、插入、更新、删除更容易组织
- 和 FastAPI 的依赖注入、Pydantic 模型更容易协作
安装命令
pip install fastapi uvicorn sqlalchemy pydantic
本课程中的技术选择
- Web 框架:FastAPI
- ORM:SQLAlchemy 2.0 风格
- 数据库:SQLite
- 运行方式:
uvicorn main:app --reload
代码示例
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
DATABASE_URL = "sqlite:///./fastapi_course.db"
engine = create_engine(DATABASE_URL, echo=False)
SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False)
案例理解
- 这里的
engine可以理解成“Python 连接数据库的入口”。 SessionLocal可以理解成“每次操作数据库时要创建的一次会话工厂”。- 后面所有增删改查,都会围绕这两个对象展开。
易错点
- 新版 SQLAlchemy 已经更推荐 2.0 风格写法,学习时尽量别混用太多旧语法。
- SQLite 适合学习和小项目,真正生产环境经常会换成 MySQL 或 PostgreSQL。
- ORM 不是“完全不用懂 SQL”,而是先降低使用门槛,再慢慢理解底层原理。
我的补充
- 如果你是零基础,先把 ORM 理解成“用 Python 代码操作数据库表”的桥梁就够了。
- 先学会常见 CRUD,后面再补事务、迁移、索引、性能优化,会更顺。
- 本课程后面所有 ORM 示例,都沿用同一个用户表案例,便于连续学习。