fastapi tortoise-orm 使用一
1.Tortoise ORM 在项目中的配置
1.模型定义
from tortoise import fields
from tortoise.models import Model
class DateTimeModel(Model):
created_at = fields.DatetimeField(auto_now_add=True, description="创建时间")
updated_at = fields.DatetimeField(auto_now=True, null=True, description="更新时间")
class Meta:
abstract = True
class GroupModel(DateTimeModel):
uuid = fields.UUIDField(source_field="uuid", pk=True, unique=True, description="用户组唯一标识")
name = fields.CharField(source_field="username", max_length=64, description="用户组名称")
parent_uuid = fields.CharField(source_field="parent_uuid", max_length=32, null=True)
users: fields.ReverseRelation["UserModel"]
class Meta:
table = "group"
class UserModel(DateTimeModel):
uuid = fields.UUIDField(source_field="uuid", pk=True, unique=True, description="用户唯一标识")
name = fields.CharField(source_field="username", max_length=64, description="用户展示名称,可以修改")
password = fields.CharField(source_field="password", max_length=128, description="用户密码")
status = fields.CharEnumField(UserStatus, default=UserStatus.OFFLINE, description="用户登录状态")
# 一对多,关联管系,和Django没什大的区别
group_uuid: fields.ForeignKeyRelation["GroupModel"] = \
fields.ForeignKeyField("models.GroupModel", related_name="group", on_delete=fields.CASCADE)
class Meta:
table = "user"
ordering = ["created_at"]
class PydanticMeta:
# 该字段不做展示,过滤作用
exclude = ["password"]
2.数据库配置
3.fastapi中引入
4.通过aerich这个模块实现数据库的迁移,类似于django的makemigrations和migrate功能
aerich这个模块实现数据库的迁移,类似于django的makemigrations和migrate功能5.main.py主程序中进行注册
6.创建测试模型
2.Tortoise ORM 增删改查
1.查询
- 关键字意义使用方法
2.创建
3.更新
4.删除
Last updated