Tortoise-ORM 是一个面向 Python 的异步 ORM 框架,深受开发者喜爱。它的设计灵感来自于 Django ORM,但专为异步编程而创建,适用于 FastAPI、Sanic、Starlette 等基于 asyncio 的框架。本文将介绍如何使用 Tortoise-ORM 进行数据持久化操作,包括安装、配置和基本操作示例。
一、安装 Tortoise-ORM
要使用 Tortoise-ORM,首先需要安装相关库。可以通过 pip 进行安装:
pip install tortoise-orm aiosqlite # 使用 aiosqlite 作为数据库驱动,也可以选择其他支持的数据库
二、配置 Tortoise-ORM
Tortoise-ORM 的配置非常简单,通常在应用启动时进行配置。以下是一个 FastAPI 项目的示例:
from fastapi import FastAPI
from tortoise import Tortoise
app = FastAPI()
@app.on_event("startup")
async def startup():
await Tortoise.init(
db_url='sqlite://db.sqlite3', # 数据库连接 URL
modules={'models': ['models']} # 指定模型模块
)
await Tortoise.generate_schemas() # 生成数据库表结构
@app.on_event("shutdown")
async def shutdown():
await Tortoise.close_connections()
在这个示例中,我们初始化了一个 SQLite 数据库,并指定了模型所在的模块路径。
三、定义模型
在 Tortoise-ORM 中,模型通过继承 tortoise.models.Model
类来定义。以下是一个用户模型的示例:
from tortoise import fields, models
class User(models.Model):
id = fields.IntField(pk=True) # 主键
username = fields.CharField(max_length=50, unique=True) # 用户名
email = fields.CharField(max_length=100, unique=True) # 邮箱
created_at = fields.DatetimeField(auto_now_add=True) # 创建时间
class Meta:
table = "users" # 数据库表名
四、基本操作示例
Tortoise-ORM 支持 CRUD 操作。下面是一些基本的示例,展示如何进行数据的创建、读取、更新和删除操作。
1. 创建用户
@app.post("/users/")
async def create_user(username: str, email: str):
user = await User.create(username=username, email=email)
return {"id": user.id, "username": user.username, "email": user.email}
2. 获取用户
@app.get("/users/{user_id}")
async def get_user(user_id: int):
user = await User.get(id=user_id)
return {"id": user.id, "username": user.username, "email": user.email}
3. 更新用户
@app.put("/users/{user_id}")
async def update_user(user_id: int, username: str, email: str):
user = await User.get(id=user_id)
user.username = username
user.email = email
await user.save() # 保存更新
return {"id": user.id, "username": user.username, "email": user.email}
4. 删除用户
@app.delete("/users/{user_id}")
async def delete_user(user_id: int):
user = await User.get(id=user_id)
await user.delete() # 删除用户
return {"message": "用户已删除"}
五、总结
Tortoise-ORM 为 Python 的异步应用提供了一个简单易用且功能强大的 ORM 框架。通过以上示例,我们可以看到如何配置和使用 Tortoise-ORM 进行基本的数据库操作。无论是开发小型应用还是大型项目,Tortoise-ORM 都能有效提高开发效率,简化数据持久化过程。希望本文能够帮助你入门 Tortoise-ORM,快速构建出高效的异步应用。