Django 中models定义字段类型方法及参数说明

字段类型定义方法:

方法名

功能说明

AutoField()

定义从1开始逐次自增1的整数类型字段,如果模型里没有显示定义该属性,Django会自动将该字段增加到新表结构里。默认情况下,该字段是,主键字段

BigAutoField()

定义64位自增整数类型字段,功能类似于AutoField(),唯一的区别是,该方法定义的字段支持的数字范围更大,为1~9223372036854775807

IntegerField()

定义整数类型字段,范围为-2147483648~2147483647,支持所有数据库

BigIntegerField()

定义64位整数类型字段,功能类似于IntegerField(),唯一的区别是,该方法定义的字段支持的数值范围更大,为-9223372036854775808~9223372036854775807

BinaryField()

定义二进制数据类型的字段

BooleamField()

定义布尔类型字段,默认值是None,若接受null,则要对NullBooleanField()方法进行修改

CharField()

定义字符串类型字段,使用该方法时必须指定参数max_length的值,表示该字段可以接受的最长字符串长度

DateField()

定义日期类型字段,对应python语言的datetime.date对象的值

DateTimeField()

定义日期时间类型字段,对应python语言的datetime.datetime 对象值

DecimalField()

定义固定小数精度的数值类型字段,常用于存储与资金相关的数值,要求准确记录(不能有四舍五入的情况)。其中,需要指定max_digitsdecimal_places这两个参数,max_digits表示数值的位数,decimal_places表示小数位数,前者的值必须大于后者的值

FloatField()

定义浮点数类型,对应python语言中的float类型数值,其小数精度有限,单精度保持7位,双精度保持15

FileField()

定义上传文件类型字段,参数upload_to用于设置上传地址的目录和文件名,该字段实际保存的是与文件相关的字符串,默认最大长度为100,文件会被保持到服务器对应的路径下

ImageField()

定义图像类型字段,继承了FileField()的所有属性、方法,使用该字段需要提前安装pillow库,安装命令为pip install pillow

TextField()

定义长文本字段

SmallIntegerField()

定义短整型字段,数值范围为-32768~32767,适用于所有数据库系统

TimeField()

定义时间字段,对应python语言中的datetime.time对象值

DurationField()

定义连续时间类型字段,对应python语言中的timedate对象值

 

 

字段参数说明:

default 参数:在需要对数据库字段设置默认值时,通过default参数进行设置。如下:

is_del = models.BooleamField(default=0)

unique 参数:建立唯一索引,当需要建立唯一索引时,设置参数为unique=True,建立唯一索引可以加快对表记录内容的检索速度。如下:

order_no = models.CharField(max_length=20,unique=True)

primary_key 参数:表的自增id为表的主键,也可以通过primary_key=True指定某个字段为主键。如果指定字段为主键,则表中将不会产生自增id字段,这对建立多表关联关系具有更实际的意义。如下:

user_id = models.CharField(max_length=20,primary_key=True,blank=False,null=False)

unique_for_year 参数:建立年唯一索引,该参数要求设置字段的类型为:DetaField DateTimeField,且年份值必须是唯一的,否则将无法输入新值或建立以年为唯一值的索引,另外,建立年唯一索引的字段值不能设置为null,也就是说,该字段不能设置为空字段。如下:

year = models.DateTimeField(unique_for_year=True)

unique_for_month 参数:建立月份唯一索引,使用方式与unique_for_year一致。如下:

month = models.DateTimeField(unique_for_month=True)

unique_for_date 参数:建立日期唯一索引,使用方式与unique_for_year 一致。如下:

date = models.DateTimeField(unique_for_date=True)

db_index 参数:指定字段建立索引,该参数对字段的要求低,允许有字段值重复,也允许字段值为空或null,只要在指定字段的设置中添加db_index=True,就可以对该字段建立索引。如下:

user_name = models.CharField(max_length=20,db_index=True)

db_column 参数:指定字段名称,可以重新定义字段名称,在数据库生成表字段时,将以db_column 的值作为字段名称。如下:

pwd = models.CharField(max_length=50,db_column=”password”)  #在数据库生成字段时,生成password,而不是pwd字段。

verbose_name 参数:类似于备注,仅对字段含义进行表述,没有特殊作用。但在生成字段时,在数据库字段的备注中,没有将verbose_name的内容添加的comment 的内容中。

phone = models.CharField(verbose_name=”手机号”,max_length=11)
或省略verbose_name参数名
address = models.CharField(“地址”,max_length=200)

blank 参数:设置是否允许字段为空值,blank=True 表示允许为空

remark = models.TextField(blank=True) #表示remark字段允许为空

null 参数:设置字段是否存在null缺省值,null=True 表示允许为null

update_userName = models.CharField(max_length=20,null=True) #表示更新用户名允许为null

help_text 参数:字段提示信息

amount = models.FloatField(help_text=”金额不能小于0”)

choices 参数:为字段提供选项,设置该参数可以为字段提供固定的选项,如下:

selecttype=((0,”男”),(1,”女”))
gender = models.CharField(max_length=1,choices=selecttype)

error_messages 参数:指定错误信息显示,当字段输入值错误时,该参数可提供出错提示信息。

login_name = models.CharField(max_length=20,blank=False,null=False,error_messages=”登录账号不允许为空”)  # 当django在序列化create(新建)或update(更新)数据时,login_name为空会进行提示:登录账号不允许为空

auto_now_add 参数:创建记录时自动获取当前日期时间,如下:

create_time = models.DateTimeField(auto_now_add=True)  #当新增记录时,create_time自动添加当前时间

auto_now 参数:更新字段值时自动更新当前日期时间。如下:

update_time = models.DatetimeField(auto_now=True) #当更新记录时,update_time自动更新当前时间

 

posted @ 2024-03-04 23:42  西夏一品唐  阅读(39)  评论(0编辑  收藏  举报