Django数据模型——数据库字段类型

字段

一个模型最重要也是唯一必需的部分,是它定义的数据库字段

字段名称限制

1、字段名不能是python保留字,这样会导致python语法错误

2、字段不能包含连续一个以上的下划线,这样会和Django查询语句语法冲突

数据库列的类型

AutoField 指一个能够根据可用ID自增的 IntegerField 。通常你不用直接使用它,如果你没有指定主键的话,系统会自动在你的模型中加入这样的主键。

BooleanField 一个真/假(true/false)字段。

CharField 一个字符串字段,适用于中小长度的字符串

注:CharField 有一个额外的必需参数: maxlength ,它是字段的最大长度(字符数)。这个最大长度在数据库层面和Django验证中是被强制要求的。

CommaaSeparatedIntegerField 一个用逗号分隔开的整数字段。和 CharField 中一样, maxlength 参数是必需的。

DateField 日期字段

注:可选参数

1、auto_now 对象保存时自动设置为当前日期,即修改日期

2、auto_now_add 对象创建时自动设置为当前时间,即创建日期

DateTimeField 时间日期字段,额外选项同DateField

EmailField 一个能检查值是否是有效的电子邮件地址的 CharField 。不接受 maxlength 参数,它的 maxlength 被自动设置为75。

FileField 文件上传字段,必须参数upload_to一个本地的文件系统路径,被附加到你的 MEDIA_ROOT 设置后面,这决定了 get__url() 辅助函数的输出

FilePathField 文件系统中某个目录下的文件名

FloatField 浮点数,

注:必须参数

1、max_digits 数字中允许的最大的数字位数

2、decimal_places 数字的小数位数

ImageField 同FileField要验证上传的对象是一个有效的图片

注:可选参数

1、height_field 高度

2、width_field 宽度

IntegerField 整数

IPAddressField IP地址,以字符串格式表示(例如: "24.124.1.30" )。

NullBooleanField 就像一个 BooleanField ,但它支持 None /Null

PhoneNumberField 它是一个 CharField ,并且会检查值是否是一个合法的美式电话格式,如(XXX-XXX-XXXX)

PositiveIntegerField 正整数

SlugField 嵌条是报纸业的术语。 嵌条 就是一段内容的简短标签,这段内容只能包含字母、数字、下划线或连字符,通常用于URL中

SmallIntegerField 和 IntegerField 类似,但是只允许在一个数据库相关的范围内的数值(通常是-32,768到+32,767)

TextField 不限长度的文字长度

TimeField 时分秒的时间显示。它接受的可指定参数与 DateField 和 DateTimeField 相同

URLField 存储URL的字段

USStateField 美国州名称缩写,两个字母

XMLField 它就是一个 TextField ,只不过要检查值是匹配指定schema的合法XML。它有一个必需参数: schema_path ,它是验证字段合法性所需的RELAX NG( http://www.relaxng.org/ )schema的物理路径。

ForeignKey on_delete 参数

on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为

on_delete=models.CASCADE, # 删除关联数据,与之关联也删除

on_delete=models.DO_NOTHING, # 删除关联数据,什么也不做

on_delete=models.PROTECT, # 删除关联数据,引发错误ProtectedError

models.ForeignKey('关联表', on_delete=models.SET_NULL, blank=True, null=True)

on_delete=models.SET_NULL, # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理)

models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值')

on_delete=models.SET_DEFAULT,

删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)

on_delete=models.SET, # 删除关联数据,

a. 与之关联的值设置为指定值,设置:models.SET(值)

b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)

Vscodedjango设置

“python.linting.pylintArgs”:
["–load-plugins=pylint_django"],

最后修改:2021 年 04 月 21 日
如果觉得我的文章对你有用,请随意赞赏