跳至主要內容

fields 相关的功能

Entity大约 2 分钟

fields 相关的功能

好的,Tortoise ORM 中的 fields 用于定义模型的字段类型,类似于 Django 中的模型字段。下面是一些常用的 fields 类型及其简单说明:

字段类型简单说明
CharField(max_length)字符串类型字段,设置最大长度。
TextField()用于存储长文本数据,不限制长度。
IntField()整数类型字段。
BigIntField()大整数类型字段,适合存储较大的整数。
FloatField()浮动类型字段,适合存储小数。
DecimalField(max_digits, decimal_places)十进制字段,指定总位数和小数位数。
BooleanField()布尔类型字段,存储 TrueFalse 值。
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)

这些是基本的 ModelField 使用示例。AuthorBook 模型展示了外键关系,Product 模型展示了多种字段类型的应用。

在 Tortoise ORM 中,Prefetching 是一个重要的优化功能,用于减少数据库查询次数,特别是在处理关系型数据时。你也提到的 多对多 (Many-to-Many)多对一 (Many-to-One) 是常见的关系类型。以下是对这两个概念的详细讲解。

多对多和一对多 Prefetching

Prefetching 是通过在查询时将相关的外键数据一次性加载到内存中,来减少数据库查询次数。通常,这样的操作用于关系型数据中,减少了每次查询时的数据库访问数量。

在 Tortoise 中,prefetch_related 用来加载关联的模型数据,而不是每次都发起额外的查询。prefetch_related 对于 一对多多对多 关系非常有用。