Sanic二十三:Sanic + tortoise-orm 之父类Field的参数、属性、方法

 

在 tortoise.fields.base 中,先定义了 _FieldMeta,然后定义了 Field 继承 _FieldMeta,然后所有字段类型都继承 Field 

 

一:支持的参数

Field参数:

source_field: str 可用此参数指定字段为其他名字,而不使用定义的字段变量名作为表字段
generated:bool 这个字段是否已生成
pk: bool 字段是否为主键
null: bool 字段是否允许为空
default:默认值
unique:字段值是否唯一
index: bool 该字段是否应自行编制索引
description:str 字段描述
validators:此字段的验证器

 

二:Field的属性

field_type: 字段类型,该字段是Python类型,如果将一个类型添加为mixin,则_FieldMeta将自动设置为该类型。
indexable: bool 该字段是否可索引?如果要设置为不可索引,则设置为 False。
has_db_field: bool 此字段是否有直接对应的数据库字段
skip_to_python_if_native: bool 如果数据库驱动程序本身支持这种 Python 类型,是否跳过它
allows_generated: bool 该字段是否可以由数据库生成?
function_cast: 我们需要应用的转换术语,以防数据库需要仿真帮助。
SQL_TYPE: str SQL 类型作为 DB 将使用的字符串。
GENERATED_SQL: str 指示数据库自动生成此字段的SQL。如果 allows_generated 指定为 True,则此字段必须指定

 

三:Field的方法

1、to_db_value:从 Python 类型转换为 数据库 类型

2、to_python_value:从 数据库 类型转换为 Python 类型

3、validate:验证给定值是否有效

4、required:返回字段是否为必传

5、constraints:返回字典

6、get_db_field_types:返回此字段的数据库类型

7、get_for_dialect:根据SQL返回属性/方法名称

8、describe:生成字段的描述,参数为布尔值,False则得到python对象,True则得到json对象

 

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