Django MysqlORM类型大全

AutoField():对应int(11)。自增主键,Django Model默认提供,可以被重写。

BooleanField():对应tinyint(1)。布尔类型字段,一般用于记录状态标记。

BinaryField(Field):二进制类型

BigAutoField(AutoField):bigint 自增列,必须填入参数 primary_key=True,如果没有写自增列,则会自动创建一个列名为 id 的列

BigIntegerField(IntegerField):有符号的长整型,-9223372036854775808 到 9223372036854775807

CharField():对应varchar。基础的varchar类型。

CommaSeparatedIntegerField(CharField):字符串类型,格式必须为逗号分割的数字

DecimalField():对应decimal。开发对数据精准要求较高大的业务时考虑使用。10进制小数,参数:max_digits,小数总长度;

decimal_places,小数位长度

DateField():对应date

DateTimeField():对应datetime

DurationField(Field):长整数,时间间隔,数据库中按照 bigint 存储,ORM 中获取的值为 datetime.timedelta 类型

EmailField():同URLfield一样继承自CharField,多了对email的特殊处理。

FileField():同URLField一样,它继承自CharField,对了对文件的特殊处理。字符串,路径保存在数据库,文件上传到指定目录参数:upload_to="",上传文件的保存路径;storage=None,存储组件,默认 django.core.files.storage.FileSystemStorage

FloatField(Field):浮点型

FilePathField(Field):字符串,Django Admin 以及 ModelForm 中提供读取文件夹下文件的功能,参数:path,文件夹路径;
match=None,正则匹配;recursive=False,递归下面的文件夹;allow_files=True,允许文件;allow_folders=False,允许文件夹

GenericIPAddressField(Field):字符串类型,Django Admin 以及 ModelForm 中提供验证 Ipv4 和 Ipv6

IntergerField():对应**int(11) **。同AutoField一样,唯一的差别就是不自增。

ImageField():继承自FileField,用来处理图片相关的数据,在展示上会有所不同。字符串,路径保存在数据库,文件上传到指定目录参数:upload_to="",上传文件的保存路径;storage=None 存储组件,默认 django.core.files.storage.FileSystemStorage;width_field=None,上传图片的高度保存的数据库字段名(字符串);height_field=None,上传图片的宽度保存的数据库字段名(字符串)

IPAddressField(Field):字符串类型,Django Admin 以及 ModelForm 中提供验证 IPV4 机制

NullBooleanField():支持null、true、false三种值

PositiveIntegerField():同IntegerField,只包含正整数,0 到 2147483647。

PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):正短整型,0 到 32767

SmallIntegerField():对应smallint。小整数时一般会用到。

SlugField(CharField):字符串类型,Django Admin 以及 ModelForm 中提供验证支持 字母、数字、下划线、连接符(减号)

TextField():对应longtext。一般用于存放大量文本内容,比如新闻正文、博客正文。

TimeField():对应time,时间格式,HH:MM[:ss[.uuuuuu]]

URLField():继承自CharField,但是实现了对URL特特殊处理。用来存储URL数据,非URL数据可以在业务层就拒绝掉,不会存入数据库中。

UUIDField():对应char(32)。除了在PostgreSQL中使用的是uuid类型外,在其他数据库中均是固定长度char(32),用来存放生成的唯一id。字符串类型,Django Admin 以及 ModelForm 中提供对 UUID 格式的验证

URLField(CharField):字符串类型,Django Admin 以及 ModelForm 中提供验证 URL

OneToOneField():integer,一对一关联表

ManyToManyField():integer,多对多关联表,将字段定义在两端中

RichTextUploadingField():ckeditor插件使用方法

MDTextField():Markdown插件使用方法



字段类型参数
null。可以同blank进行对比。null用于设定在数据库层面是否允许为空
blank。针对业务层面,该值是否允许为空。
choices。配置字段的choices后,在admin页面上就可以看到对应的可选项展示。
db_column。默认情况下,定义的field就是对应数据库中的字段名称,通过这个参数可以指定Model中的某个字段对应数据库中的哪个字段。
db_index。数据库索引配置。
default。默认值配置。
editable。是否可编辑,默认是True。如果不想这个字段显示在页面上,可以配置为False。
error_messages。用来自定义字段值校验失败时的异常提示,它是字典格式。key的值可选项为null、blank、invalid、invalid_choice、unique和unique_for_date。
help_text。字段提示语,配置这一项后,在页面对应字段的下方会展示此配置。
primary_key。主键,一个Model只允许设置一个字段为primary_key。
unique。唯一约束,当需要配置唯一值时,设置unique=True,设置此项后,不需要设置db_index。
unique_for_date。针对date(日期)的联合约束。比如说一天只能写一篇博文,即:unique_for_date=“博文”
unique_for_month。针对月份的联合约束 。
unique_for_month。针对年份的联合约束。
verbose_name。字段对应的展示文案。
validators。自定义校验逻辑,同form类似。

猜你喜欢

转载自blog.csdn.net/vlking/article/details/105663236