你是否遇到这些问题?
- SQLAlchemy 太复杂,想找个轻量级 ORM?
- 需要在 FastAPI 里操作数据库,但 SQLAlchemy 配置繁琐?
- 想在异步项目中优雅地操作数据库?
Tortoise-ORM 是一款 轻量级、异步、易上手 的 Python ORM,适用于 FastAPI、Sanic、Tornado 等异步 Web 框架。
本篇文章带你 从入门到进阶,彻底掌握 Tortoise-ORM!
目录结构
代码拆分合理,结构清晰,方便扩展!
安装 & 配置
(1) 安装依赖
如果使用 MySQL:
如果使用 PostgreSQL:
(2) 配置数据库信息(config.py)
这样做的好处:方便更换数据库类型!
(3) 连接数据库(db.py)
ORM 需要 init() 初始化数据库,然后 generate_schemas() 自动建表。
定义 ORM 模型(models.py)
ORM 方式定义表结构,避免手写 SQL!
封装数据库操作(crud.py)
封装 CRUD,主逻辑更清晰,调用更方便!
启动程序(main.py)
代码拆分后,main.py 逻辑清晰,可随时扩展!
进阶操作:一对多 & 多对多
(1) 一对多关系(User → Post)
ForeignKeyField 定义外键关系,related_name 反向访问!
(2) 多对多关系(User ↔ Course)
多对多关系通过 ManyToManyField 轻松实现!
Tortoise-ORM vs 其他 ORM
ORM 框架 | 异步支持 | 轻量级 | 易用性 | 适用场景 |
Tortoise-ORM | ✅ 原生异步 | ✅ 轻量级 | ✅ 类 Django ORM | ✅ FastAPI / Sanic / 异步项目 |
SQLAlchemy | ⚠️ 依赖 | ❌ 复杂 | ❌ API 复杂 | ✅ 复杂项目 |
Django ORM | ❌ 仅同步 | ⚠️ 比较重 | ✅ 简单 | ✅ Django 项目 |
- 异步项目 → 用 Tortoise-ORM
- 同步项目 → 用 Django ORM 或 SQLAlchemy
结语:Tortoise-ORM 让异步数据库操作更简单!
Tortoise-ORM 是 FastAPI、Sanic 等异步 Web 框架的最佳 ORM 选择!
语法简单,API 直观,学习成本低!