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