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 并定义了模型,可以开始编写应用程序,并使用这些模型进行数据库操作了