Sanic二十四:Sanic + tortoise-orm 之常用字段类型和参数

 

在 tortoise-orm 中定义字段,需要使用 tortoise-orm提供的fields模块下的字段

 

1、BigIntField:大整数字段,长度支持64位,除了支持继承自Field的参数外,还支持pk(primary key),指定是否为主键

constraints属性:返回具有以 Pydantic/JSONSchema 格式定义的约束的字典。

 

2、BinaryField:二进制字段,用于存储bytes对象,不支持过滤器或查询集更新操作

 

3、BooleanField:布尔字段BooleanField:布尔字段

 

4、CharEnumField:字符串枚举字段

说明:
    1、的有效 str 值 enum_type 是可以接受的。
    2、如果未指定“max_length”或该值等于零,则表示自动检测字符字段。因此,如果以后更新枚举,则需要更新表架构。
参数:
    enum_type:枚举类
    description:字段的描述。如果未指定为"name: value"的多行列表,则会自动设置。
    max_length:创建的 CharField 的长度。如果它为零,它会自动从 enum_type 中检测到。

 

5、字符串类型

参数:max_length (int),必传,字段的最大长度(以字符为单位)。
属性:constraints,返回具有以 Pydantic/JSONSchema 格式定义的约束的字典。

 

6、DateField:日期字段

 

7、DatetimeField:日期时间字段

auto_now(bool): 保存时始终设置为datetime.utcnow()
auto_now_add(bool): 仅在第一次保存时设置为datetime.utcnow()
auto_now 和 auto_now_add 是互斥的,要么都不设置,要么只设置一个
constraints:返回具有以 Pydantic/JSONSchema 格式定义的约束的字典。
describe:生成字段的描述,参数为布尔值,False则得到python对象,True则得到json对象

 

8、DecimalField:精确的十进制字段
max_digits (int): 必传字段,十进制字段的最大有效位数
decimal_places (int): 必传字段,这些有效数字中有多少是小数点后的

 

9、FloatField:浮点数类型

 

10、IntEnumField:整数枚举字段
enum_type:枚举类,可以是有效的int类型
description:字段的描述,如果未指定为 "name: value" 对的多行列表,则字段的描述将自动设置

 

11、IntField:int类型,除了支持继承自Field的参数外,还支持pk(primary key),指定是否为主键

 

12、JSONField:此字段可以存储任何符合 JSON 的结构的字典或列表。
encoder:自定义 JSON 编码器。
decoder:自定义 JSON 解码器。

 

13、SmallIntField:小整数字段,支持16位
pk(bool):是否为主键
constraints: 返回具有以 Pydantic/JSONSchema 格式定义的约束的字典

 

14、TextField: 大文本字段

 

15、TimeDeltaField: 用于存储时差的字段

 

16、该字段可以存储 uuid 值,如果用作主键,它将默认自动生成 UUID4

 

posted @ 2021-08-25 22:15  向前走。  阅读(1578)  评论(0编辑  收藏  举报