1. django中的常用字段
1. AutoField
映射到数据库中是int类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫做id的自动增长的主键。如果你想指定一个其他名字的并且具有自动增长的主键,使用AutoField也是可以的。
2. BigAutoField
64位的整形,类似于AutoField,只不过是产生的数据的范围是从1-9223372036854775807。
3. BooleanField
在模型层面接收的是True/False。在数据库层面是tinyint类型。如果没有指定默认值,默认值是None。
4. CharField
在数据库层面是varchar类型。在Python层面就是普通的字符串。这个类型在使用的时候必须要指定最大的长度(max_lenth),也即必须要传递max_length这个关键字参数进去。
(choice = )
最大长度计算:https://www.cnblogs.com/canger/p/9850727.html
5. DateTimeField
日期时间类型,不仅仅可以存储日期,还可以存储时间。映射到数据库中是datetime类型。
在django中是有时区的概念的,使用时要考虑到时区的问题,默认使用的是 UTC时区,分为 navie(没时区) 和 aware(有时区),如果项目不是国际的,可以我们将时区关闭,使用本地的时间。
我们可以在settings.py 中修改相应的时区和是否使用时区
TIME_ZONE = 'Asia/Shanghai'
USE_TZ= True # 为True意味在项目中使用的是 aware 时间,如果为false则意味着使用的是 navie 时间
TIME_ZONE = 'Asia/Shanghai'
from django.utils.timezone import localtime,now
auto_now:在每次这个数据保存的时候,都使用当前的时间。
比如作为一个记录修改日期的字段,可以将这个属性设置为True。
auto_now_add:在每次数据第一次被添加进去的时候,都使用当前的时间。
比如作为一个记录第一次入库的字段,可以将这个属性设置为True。
6. EmailField
类似于CharField。在数据库底层也是一个varchar类型。最大长度是254个字符。
7. FileField
用来存储文件的。(upload_to= )指定存储到哪个目录下