首页 > 其他分享 >Django 中models定义字段类型方法及参数说明

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

时间:2024-03-04 23:58:01浏览次数:30  
标签:定义 models max Django 参数 unique True

字段类型定义方法:

方法名

功能说明

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_digits、decimal_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自动更新当前时间

 

标签:定义,models,max,Django,参数,unique,True
From: https://www.cnblogs.com/JcHome/p/18053048

相关文章

  • 1)宏定义三目运算符
    参考:https://www.runoob.com/w3cnote/macro-definition.html //正确的认识宏(三目运算的宏定义)//(1)小白写法#defineMIN(A,B)A<B?A:Binta=MIN(1,2);//=>inta=1<2?1:2;printf("%d",a);//=>1//问题inta=2*MIN(3,4);//=>inta=......
  • 由Django框架分析WSGI
    下面我们以django为例,分析一下wsgi的整个流程djangoWSGIapplicationWSGIapplication应该实现为一个可调用iter对象,例如函数、方法、类(包含**call**方法)。需要接收两个参数:一个字典,该字典可以包含了客户端请求的信息以及其他信息,可以认为是请求上下文,一般叫做environment(编......
  • 根据java已经定义好的Class生成DDL SQL
    packagecom.ai.exchange.generator;importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableField;importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.TableName;import......
  • 定义与声明的区别
    在C++中,声明和定义有以下区别:声明(Declaration):声明是向编译器介绍变量、函数、类等的名称和类型。声明不分配存储空间,也不初始化变量。声明通常出现在函数原型、类定义或全局变量声明中。例如,声明一个整型变量inta;,这里只告诉编译器有一个名为a的整型变量,但并没有为它分配存储......
  • Towards Foundation Models for Knowledge Graph Reasoning
    目录概符号说明ULTRA(amethodforUnified,Learnable,andTRAnsferableKGrepresentations)RelationGraphConstructionConditionalRelationRepresentations代码GalkinM.,YuanX.,MostafaH.,TangJ.andZhuZ.Towardsfoundationmodelsforknowledgegraphrea......
  • Django REST framework 安装及简单示例
    Django是python的一个后端服务器框架,用来写webAPI接口简单且方便。Djangorestframework是构建webapi的一个强大而灵活的工具包。 Django官网文档:https://docs.djangoproject.com/en/5.0/ref/settings/Djangorestframework官网文档:https://docs.djangoproject.com/en/5.......
  • 百度地图API自定义地图
    <!DOCTYPEHTMLPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content......
  • 异常(异常是python对象) 和 自定义异常类
    Python提供了异常和断言来处理程序在运行过程中出现的异常和错误什么是异常?分清楚程序发生异常和程序执行错误,它们完全是两码事,程序由于错误导致的运行异常,是需要程序员想办法解决的;但还有一些异常,是程序正常运行的结果,比如用raise手动引发的异常。异常是在程序执行过程中......
  • 宏定义—define,typedef
    一·关键字:#define用途(个人理解):用一个字符串代替一串数字,如内存地址等,数字具有特别意义但是不好记忆,也不好理解,这就可以快速修改参数,只修改定义即可。它的定义:#define王三6422411462001ps:没有封号二·typedef用途:将一个较长的数据类型换个名字,如结构体,枚举,数组等定义:type......
  • 【Filament】自定义Blinn Phong光照模型
    1前言​光照元素主要有环境光(ambient)、漫反射光(diffuse)、镜面反射光(specular),基础的光照模型主要有兰伯特(Lambert)光照模型、冯氏(Phong)光照模型和改进的冯氏(BlinnPhong)光照模型。​Lambert光照模型只包含漫反射光的计算,Phong光照模型和BlinnPhong光照模型都包含环......