fields 相关的功能
大约 2 分钟
fields 相关的功能
好的,Tortoise ORM 中的 fields
用于定义模型的字段类型,类似于 Django 中的模型字段。下面是一些常用的 fields
类型及其简单说明:
字段类型 | 简单说明 |
---|---|
CharField(max_length) | 字符串类型字段,设置最大长度。 |
TextField() | 用于存储长文本数据,不限制长度。 |
IntField() | 整数类型字段。 |
BigIntField() | 大整数类型字段,适合存储较大的整数。 |
FloatField() | 浮动类型字段,适合存储小数。 |
DecimalField(max_digits, decimal_places) | 十进制字段,指定总位数和小数位数。 |
BooleanField() | 布尔类型字段,存储 True 或 False 值。 |
DateField() | 日期字段,存储日期(不含时间)。 |
DatetimeField() | 日期时间字段,存储日期和时间。 |
TimeField() | 时间字段,存储时间(不含日期)。 |
ForeignKeyField(model, related_name) | 外键字段,用于与其他模型建立一对多关系。 |
ManyToManyField(model) | 多对多关系字段,用于表示多对多关系。 |
OneToOneField(model) | 一对一关系字段,用于表示一对一关系。 |
JSONField() | JSON 字段,存储 JSON 格式的数据。 |
UUIDField() | UUID 类型字段,存储 UUID 数据。 |
BinaryField() | 二进制数据字段,用于存储二进制数据。 |
DatetimeTZField() | 带时区的日期时间字段,存储日期和时间并支持时区。 |
DecimalField() | 十进制数类型字段,存储精确的浮动数值。 |
这些字段类型是 Tortoise ORM 中最常用的类型,每种字段类型都有其特定的用途,可以根据业务需求选择适合的字段类型。如果需要更多字段或方法的详细说明,可以随时告诉我!
Field 示例
from tortoise import fields
from tortoise.models import Model
class Product(Model):
id = fields.IntField(pk=True)
name = fields.CharField(max_length=100)
price = fields.DecimalField(max_digits=10, decimal_places=2)
description = fields.TextField()
created_at = fields.DatetimeField(auto_now_add=True)
这些是基本的 Model
和 Field
使用示例。Author
和 Book
模型展示了外键关系,Product
模型展示了多种字段类型的应用。
在 Tortoise ORM 中,Prefetching 是一个重要的优化功能,用于减少数据库查询次数,特别是在处理关系型数据时。你也提到的 多对多 (Many-to-Many) 和 多对一 (Many-to-One) 是常见的关系类型。以下是对这两个概念的详细讲解。
多对多和一对多 Prefetching
Prefetching
是通过在查询时将相关的外键数据一次性加载到内存中,来减少数据库查询次数。通常,这样的操作用于关系型数据中,减少了每次查询时的数据库访问数量。
在 Tortoise 中,prefetch_related
用来加载关联的模型数据,而不是每次都发起额外的查询。prefetch_related
对于 一对多 和 多对多 关系非常有用。