一. 常用字段
自增长字段:
1. models.AutoField()
2. models.BigAutoField()
区别:BigAutoField支持的数字更大,比如十亿、二十亿
二进制数据字段:
3. models.BinaryField()
用处:我们需要向数据表中传入二进制数据的时候
布尔型字段:
4. models.BooleanField()
5. models.NullBooleanField()
区别:第1种是不允许为空的布尔型,第2种是允许为空的布尔型
整型字段:
在MySQL数据库中整型分为长整型、短整型 等类型
django中也实现了五种:
models.PositiveSmallIntegerField() # 正整数,5个字节
models.SmallIntegerField() # (正负)整数,6个字节
models.PositiveIntegerField() # 正整数, 10个字节
models.IntegerField() # (正负)整数,11个字节
models.BigIntegerField() # (正负)整数,20个字节
字符串字段:
models.CharField() # mysql中对应的是varchar
models.TextField() # longtext
区别,第一个需要指定最大长度,第二个不需要
时间日期类型:
models.DateField() # 年月日
models.DateTimeField() # 年月日 时分秒
models.DurationField() # int, Python 中 timedelta实现
浮点型:
models.FloatField()
models.DecimalField()
区别:DecimalField()需要指定整数多少位,小数多少位
其他字段:
models.EmailField() # 邮箱
models.ImageField()
models.FileField()
models.FilePathField()
models.URLField()
models.UUIDField()
models.GenericIPAddressField()
二、关系型字段
一对一字段:
models.OneToOneField(别的数据表)
多对一字段:
models.ForeignKey(别的数据表)
注意:如果参数是self或者是自身模型类名,属于自关联
多对多字段:
models.ManyToManyField(别的数据表)
用法:默认或者自定义中间表