导入models:from django.db import models
1、AutoField
映射到数据库中是int类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫id的自动增长的主键。如果想指定一个其它名字的并具有自动增长的主键使用AutoField也是可以的,models.AutoField(primary_key=True)。
2、BigAutoField
64位的整型,类似于AutoField,只不过范围更大。
id = models.BigAutoField(primary_key=True)
3、BooleanField
在模型层面接收的是True/False。在数据库层面是tinyint类型。如果没有指定默认值,默认值是None。
removed = models.BooleanField() # 不能为空
removed = models.NullBooleanField() #可以为空
4、CharField
在数据库层面是varchar类型。在Python层面是普通的字符串。这个类型在使用的时候必须指定最大的长度(max_length),可以指定null=False,不可以为空。如果超过了254个字符,那么就不建议使用,推荐使用TextField,映射到数据库中是longtext类型。
name = models.CharField(max_length=100, null=False)
5、DateField
日期类型。在Python中是datetime.date类型,可以记录年月日。在映射到数据库中也是date类型。使用此Field可以传递以下几个参数:
1. auto_now:在每次这个数据保存的时候都是用当前的时间。比如作为一个记录修改日期的字段,可以将这个属性设置为True。
2. auto_now_add:在每次数据第一次被添加进去的时候,都使用当前的时间。比如作为一个记录第一次入库的字段,可以将这个属性设置为True。
6、DateTimeField
日期时间类型,类似于DateField。不仅仅可以存储日期,还可以存储时间。映射到数据库中是datetime类型。这个Field也可以使用auto_now和auto_now_add两个属性。
7、TimeField
时间类型。在数据库中是time类型。在Python中是datetime.time类型。
8、EmailField
类似于CharField。在数据库底层也是一个varchar类型。只不过这个Field可以在存储字符串的时候检测这个字符串是否是一个有效的邮箱(当使用ModelForm时)。默认最大长度是254个字符。EmailField在数据库层面并不会限制字符串一定要满足邮箱格式,只是以后再使用ModelForm等表单相关操作的时候会起作用。
9、FileField
用来存储文件的。
10、ImageField
用来存储图片文件的。
11、FloatField
浮点类型。映射到数据库中是float类型。
12、IntegerField
整型,值区间是 -2147483648——2147483647。
13、BigIntegerField
大整型。
14、PositiveIntegerField:正整型(0—2147483647)
15、SmallIntegerField:小整型(0—32767)
16、TextField:大量的文本类型,映射到数据库是longtext类型。
17、UUIDField:只能存储uuid格式的字符串,uuid是一个32位的全球唯一的字符串,一般用来作为主键。
18、URLField:类似于CharField,只不过只能用来存储url格式的字符串。并且默认的max_length是200。