(一 ) 索引,字符,数字
1、models.AutoField
自增列 如果没有,默认会生成一个名称为 id 的列,
如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。
#uid 主键,原来的id不会创建
uid=models.AutoField(auto_created=True,primary_key=True)
2、models.CharField 字段 单行输入,用于较短的字符串,如要保存大量文本, 使用 TextField。
必须 max_length 参数,django会根据这个参数在数据库层和校验层限制该字段所允许的最大字符数。
#CharField 字符串类型,max_length字符长度, unique是否唯一,db_index索引
name=models.CharField(max_length=20,unique=True,db_index=True)
3、models.TextField
字符串 ,一个容量很大的文本字段
#TextField 大文本 长字符类型,null=True是否为空,blank=True后台Admin管理页面可以为空
info=models.TextField(null=True,blank=True)
4、models.IntegerField
整数类型
# IntegerField 整数类型,default 默认值
age=models.IntegerField(default=19)
5、models.PositiveIntegerField
类似 IntegerField, 但取值范围为非负整数(允许0值,可以理解为无符号整数)
#非负数
num=models.PositiveIntegerField()
6、models.FloatField
浮点类型 = double 浮点型字段。 必须提供两个 参数:
max_digits:总位数(不包括小数点和符号)
decimal_places:小数位数。
# FloatField 小数类型
salary=models.FloatField(default=10000.68)
7、models.DecimalField
十进制浮点数 ,参数
.max_digits. 位数总数
.decimal_places小数点后的数字位数
#DecimalField 十进制数,max_digits 总位数(不包括小数点和符号), decimal_places小数位数 ,default默认值
money=models.DecimalField(max_digits=5,decimal_places=2,default=100.35)
(二)日期时间,文件
1、models.DateField
日期类型 YYYY-MM-DD 参数:
auto_now = True 则每次更新都会更新这个时间;
auto_now_add =True 则只是第一次创建添加,之后的更新不再改变。
# DateField 日期类型
birthday=models.DateField(default='2023-11-30')
2、models.DateTimeField
日期类型 YYYY-MM-DD hh:mm:ss 同DateField的参数
# DateTimeField 每一次修改后自动该时间为最新时间auto_now
birthday=models.DateTimeField(auto_now=True)
3、models.TimeField
日期类型 hh:mm:ss 同DateField的参数
# TimeField每一次修改后自动该时间为最新时间auto_now
time=models.TimeField(auto_now=True)
4、models.FileField
文件上传字段。 一个必须参数:
upload_to : 一个用于保存上传文件的本地文件系统路径。
由于性能需求文件不会被直接存储到数据库中
非必需参数 storage 用来设定文件存储仓库
#FileField 文件和图片
icon=models.FileField(null=True,upload_to='static/uploads')
5、models.ImageField
图像文件上传字段,继承了models.FileField,可以通过 upload_to 指定上传路径
height_field,width_field 如果提供这两个参数,则图片将按提供的高度和宽度规格保存。
#ImageField 只能上传图片
icon1=models.ImageField(null=True,upload_to='static/uploads')
1、models.BooleanField 布尔类型=tinyint(1) 不能为空,Blank=True
#BooleanField 布尔类型
sex=models.BooleanField(default=True)
注意:(models.NullBooleanField:类似 BooleanField, 不过允许 NULL 作为其中一个选项。
models.IPAddressField 字符串类型(ip4正则表达式) 一个字符串形式的 IP 地址)
在Django4的版本已经不在使用了。
# (fields.E903) NullBooleanField is removed except for support in historical migrations. # HINT: Use BooleanField(null=True) instead. # sex=models.NullBooleanField() sex=models.BooleanField(null=True)
# (fields.E900) IPAddressField has been removed except for support in historical migrations. # HINT: Use GenericIPAddressField instead. # ip=models.IPAddressField() ip=models.GenericIPAddressField(null=True)