参考资料[1]
一、常用字段
from django.db import models
1、测试学习用
models.AutoField() #自增长字段,默认Int值
models.BigAutoField()
2、二进制数据
models.BinaryField()
3、布尔型
models.BooleanField()
models.NullBooleanField()
4、整型
models.PositiveSmallIntegerField() #5个字节
models.SmallIntegerField() #6个字节
models.PositiveIntegerField() #10个字节
models.IntegerField() #11个字节
models.BigIntegerField() #20个字节
5、字符串类型
models.CharField() #varchar
model.TextField() #longtext
6、时间日期类型
models.DateField() #年月日
models.DateTimeField() #年月日时分秒
models.DurationField() #int, Python timedelta实现
7、浮点型
models.FloatField()
models.DecimalField()
8、其他字段
models.EmailField() #邮箱
models.ImageField()
models.FileField()
models.FilePathField()
models.URLField()
models.UUIDField()
models.GenericIPAddressField()
二、字段参数
1、所有字段都有的参数
db_column="xxx" #修改字段的名字为xxx
primary_key=True #设置主键
verbose_name="11个字节大小" #设置字段的别名备注
unique=True #该字段的数据在表中唯一
null=True, blank=True #null是对数据库来说允许为空,blank是表单提交时允许为空
db_index=True #给字段设置索引
help_text="这个是Longtext" #在表单中显示帮助信息
editable=False #用户不能对字段的内容进行编写
2、个别字段才有的参数
models.CharField(max_length=100) #utf8编码的100个字符串
models.DateField(unique_for_date=True,auto_now=True) #表示这个字段的日期必须为1,更新当前记录的时间
models.DateTimeField(unique_for_month=True, auto_now_add=True) #表示这个字段的月份必须为1,增加记录时的当前时间
models.DecimalField(max_digits=4, decimal_places=2) #共有4位,小数点后2位
3、关系型字段的参数
related_name="one" #用于外键关联中的反向查询,通过父表查询子表
on_delete=models.CASCADE #表示当外键关联的对象被删除的时候,要进行的操作,共有6种操作
models.CASCADE:删除级联
models.PROTECT:当被关联的数据被删除时,就会报ProtectedError异常
models.SET_NULL:删除置空,只有当该字段设置了null=True时,方可使用该值
models.SET_DEFAULT:父表的数据被删除,给子表的外键设置一个默认值
models.DO_NOTHING:父表的数据被删除,子表什么都不做
models.SET():
参考资料:
[1] https://www.imooc.com/video/18454
[2] 更多https://docs.djangoproject.com/en/dev/ref/models/fields/#field-types
网友评论