字段类型:model下的field对应数据库中的表字段
1.AutoField
itemId = models.AutoField(primary_key=True)
根据id自动递增,一般和primary_key=True配合使用,设置成主键
2.CharField
itemName = models.CharField(max_length=50)
字符型,对应数据库的varchar,max_length最大长度必填。
3.IntegerField
- from django.core.validators import MinValueValidator, MaxValueValidator
-
-
- caseType = models.IntegerField(validators = [MaxValueValidator(1), MinValueValidator(1)] )
整数型,对应数据库的int,无必填参数。需要注意的是最大最小校验应该使用validators ,不能使用max_length。
4.DateTimeField DateField
- createdTime = models.DateTimeField()
- updateTime = models.DateField()
时间类型,对应数据库的datetime和date。无必填参数
5.BooleanField
valStatus = models.BooleanField(default=False)
布尔型,对应数据库的tinyint,无必填参数。Django操作时只能输入True/False,0/1。如果通过数据库操作是可以录入其他值得。
6.TextField
text = models.TextField()
对应数据库的longtext,无必填参数。需要存储很长的字符串会使用,比如存储文章。
7.FloatField
price = models.FloatField()
浮点类型,无必填参数
8.DecimalField
end_plate_lng = models.DecimalField(max_digits=20,decimal_places=10)
对应数据库的decimal。必填参数max_digits 最大位数,decimal_places 小数位数。
当对精度有要求时可使用此字段,比如金额,经纬度。
字段选项:
1.primary_key
caseId = models.AutoField(db_column='case_id', primary_key=True, )
将一个字段设置为该表的主键,每个表只能有一个字段设置primary_key
2.null
caseName = models.CharField(max_length=50,null=True,blank=True)
默认是False,该字典为空时django会将值设为''。
当为True,该字典为空时django会将值设为null。
当设置为True时,一个字段为空的表现就会出现两种,空字符串 '' 和 null
3.blank
remark = models.CharField(verbose_name="备注", max_length=120, blank=True)
默认为False,通俗理解表示该字段是否必填。True表示非必填
4.default
valStatus = models.BooleanField(default=False)
为该字段添加默认值,可以是个可调用的对象。
5.unique
caseName = models.CharField(max_length=50,,unique=True)
给该字段添加唯一性校验。如果添加了,那么该字段应该是必填的。
6.db_index
caseName = models.CharField(max_length=50,unique=True,db_index=True)
给字段添加数据库索引。数据库索引会提高查询效率。
7.auto_now_add auto_now
- createdTime = models.DateTimeField(db_column='created_time', verbose_name="创建时间", auto_now_add=True)
- updateTime = models.DateTimeField(db_column='updated_time', verbose_name="修改时间", auto_now=True)
auto_now_add:用于日期和时间字段。新增一条数据时,该字段写入当前时间。一般用于创建时间
auto_now:用于日期和时间字段。修改一条数据时,该字段写入当前时间。一般用于修改时间
8.verbose_name
字段的备注
9.db_column
用该参数指定数据库列名。django默认使用字段名当数据库列名。
在使用django REST进行接口开发,返回json格式的数据,一般接口的参数都是驼峰写法。对应的数据库的列名是用下划线的。在model中定义字段时,直接用驼峰写法,并用db_column来定义列名。
10.choices
-
- CASE_TYPE_CHOICE = [
- (0, "接口"),
- (1, "UI")
- ]
- caseType = models.IntegerField(db_column='case_type', verbose_name="类型", choices=CASE_TYPE_CHOICE, )
该参数提供字段的可选值,并且会校验。每个元组中第一个值会落到数据库中。