Tortoise ORM 是一个异步 Python ORM(对象关系映射)框架,专为异步 Web 应用程序而设计。它基于异步 I/O 模型,适用于像 FastAPI 这样的异步 Web 框架。下面是一个简单的入门教程,让你快速了解如何开始使用 Tortoise ORM。
1: 安装 Tortoise ORM
使用 pip 进行安装:
pip install tortoise-orm
2: 配置数据库连接
在应用程序中,需要配置数据库连接。Tortoise ORM 支持多种数据库后端,包括 SQLite、MySQL、PostgreSQL、MariaDB 和 CockroachDB。下面是一个示例配置文件 config.py
:
TORTOISE_ORM = {
"connections": {
"default": "sqlite://db.sqlite3", # SQLite 示例
},
"apps": {
"models": {
"models": ["__main__"], # 指定包含模型的模块
"default_connection": "default", # 使用上面定义的数据库连接
}
},
}
3: 定义模型
在应用程序中,需要定义模型。模型将映射到数据库中的表。下面是一个简单的示例模型:
from tortoise.models import Model
from tortoise import fields
class User(Model):
id = fields.IntField(pk=True)
username = fields.CharField(max_length=50)
email = fields.CharField(max_length=100)
def __str__(self):
return self.username
4: 创建数据库表
运行 Tortoise ORM 的命令来创建数据库表。在你的应用程序根目录下运行:
tortoise-orm generate_schemas
5: 使用模型进行 CRUD 操作
使用模型进行 CRUD(创建、读取、更新、删除)操作。例如:
from tortoise.queryset import Q
# 创建新用户
async def create_user(username, email):
user = await User.create(username=username, email=email)
return user
# 通过 ID 获取用户
async def get_user_by_id(user_id):
user = await User.get(id=user_id)
return user
# 查询所有用户
async def get_all_users():
users = await User.all()
return users
# 根据条件查询用户
async def filter_users_by_email(email):
users = await User.filter(email=email)
return users
# 更新用户信息
async def update_user(user_id, new_username):
user = await User.filter(id=user_id).update(username=new_username)
return user
# 删除用户
async def delete_user(user_id):
user = await User.filter(id=user_id).delete()
return user
6: 运行
配置好了 Tortoise ORM 并定义了模型,可以开始编写应用程序,并使用这些模型进行数据库操作了