django模型 常用的字段

ORM简介

MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库。

· ORM是“对象-关系-映射”的简称,主要任务是:

· 1)根据对象的类型生成表结构

· 2)将对象、列表的操作,转换为sql语句

· 3)将sql查询到的结果转换为对象、列表

这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动。

Django中的模型包含存储数据的字段和约束,对应着数据库中唯一的表。


表的常用字段和选项

常用的表字段

AutoField 自动增值的id字段

primary_key=True 为必设置选项

BigAutoField 自动增值的id字段

支持 1 到 9223372036854775807,之间的序号

BigIntegerField 长整形字段

 从 -9223372036854775808 到9223372036854775807 的整数

BinaryField 二进制字段

存储内存二进制数据,以 python bytes 对象来访问

BooleanField 布尔值字段

如果许可空的布尔值输入,换用 NullBooleadField

CharField可变长字符串字段

max_length 有最大输入选项为必须设置的选项

DateField日期字段

auto_now:每一次保存对象时,Django 都会自动将该字段的值设置为当前时间。一般用来表示 "最后修改" 时间。要注意使用的是当前日期,而并非默认值,所以

不能通过重写默认值的办法来改变保存时间。

auto_now_add:在第一次创建对象时,Django 自动将该字段的值设置为当前时间,一般用来表示对象创建时间。它使用的同样是当前日期,而非默认值

DateTimeField 有时刻的日期字段

auto_now=False

auto_now_add=False

当auto_now或者auto_now_add设置为True时,字段会有editable=True和blank=True的设定

models.DecimalField(..., max_digits=5, decimal_places=2)

; 固定精度的十进制数的字段。

它有两个必须的参数

max_digits:数字允许的最大位数

decimal_places:小数的最大位数

例如,要存储的数字最大值是999,而带有两个小数位,你可以使用

 

DurationField 日期时间增量型字段,存储着python timedelta 类数据

EmailField 邮件字段    max_length

FileField 文件字段

FilePathField 文件路径字段

FloatField 小数字段

ImageField 图片字段

IntegerField 整数字段

GenericIPAddressField ip地址字段

NullBooleanField 许可null的布尔值字段

PositiveIntegerField

0 到 2147483647,支持所有数据库取值范围的安全整数。

PositiveSmallIntegerField

0 到 32767 支持所有数据库取值范围的安全短整数。

SlugField

SmallIntegerField 短整形字段

TextField 备注型字段,用于存储复杂文本

TimeField 时间字段

URLField 网址字段

UUIDField

Python UUID 数据对象,一个32位长度的ID字符串

映射字段

ForeignKeyField 一对多字段

映射字段

ManyToManyField 多对多字段

映射字段

OneToOneField 一对一字段

 

上文中提及了表字段和表字段的选项,罗列了所有常用的字段和字段选项,但因为教案到此处,还没有涉及表单功能的讲解。所以有些字段选项,还不好举例说明用法。后续到表单的知识章节,再做讲解。

ForeignKeyFieldManyToManyField、以及OneToOneField 这三个字段是映射字段。后续的章节才会讲到,他们有非常数量级的业务流程,非这一个章节能说明白。这里就提及有他们而已。

再有如 BigAutoField AutoField一样,只是一个有效值的范围大些,一个小些。BigIntergerFieldIntergerField也是这样的一对,一个有效值范围大,一个小。所以代码举例时没有都举例。自己脑补一下。应该说自己手动输入代码玩玩。

虽然章节还未涉及后台知识点,但我们还是可以先睹为快框架的强大。

 

常用的表字段选项

这里只做一个列举,后头有表字段选项的用法。

null

不设置时默认设置为False。设置为True时,数据库表字段中将存入NULL的记录。

blank

默认设置为False。设置为True时,表字段许可无任何输入。设置为False 时,表字段为必须输入的字段

 

choices

备选设置。选择列表选项,如果设置后,该字段的表单必然会是下拉选择的。这个值必须是一个有小括号构成的元组,每个元组前一个字段将存入数据库,后一个字段是显示给用户看的。

default

默认值,设置后在用户无输入时,表字段将以这个选项的内容来存储到数据库字段

可以为python 支持的任意数据对象

editable

如何设置为False,将不会参与到表单的验证。默认是设置为True的

error_messages

这个选项实现校验时的错误提示。是字典结构的内容。

help_text

在表单中形成输入提示内容

primary_key

主键,设置为 True ,该字段将启用为主键。 默认是 False

unique

设置为 True 启用不存在重复值输入的设定,默认为False

unique_for_date

 

设定日期不存在重复输入,默认为False

 

verbose_name

字段的文本标签

validators

校验选项,用来配置校验的方法,构成的列表。

max_length

最大输入字符串的长度

min_length

最少输入字符串的长度

 


猜你喜欢

转载自blog.csdn.net/antian1991/article/details/80659169