Django 模型基础(五)

一、models常用字段类型

(一 )  索引,字符,数字

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)     

你可能感兴趣的:(django,python,后端)