常用字段:
在django中,定义了一些field来与数据库表中的字段类型来进行映射。
Autofield:映射到数据库中的Int类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫做id的自动增长的主键。
BigAutofield:64位的整型,类似于AutoField,只是产生的数据范围不同。
BooleanField:在模型层面接收的是True/False。在数据库是tinyint类型。如果没有指定默认值,默认值是None。
CharField:在数据库层面是varchar类型,在python层面就是普通的字符串。这个类型在使用的时候必须要指定最大的长度,也即必须要传递max_length这个关键字参数进去。
DateField:日期类型。在python中是datatime.date类型,可以记录年月日。在映射到数据库中也是date类型。使用这个Field可以传递以下几个参数:
Auto_now:d 在每次这个数据保存的时候,都使用当前的时间。比如作为一个记录修改日期的字段可以将这个属性设置。
Auto_now_add:在每次数据第一次被添加进去的时候,都使用当前的时间。
emailField:类似于CharField。在数据库底层也是一个varchar类型。最大长度为254个字符。
FileField:用来存储文件的。
ImageField:用来存储图片文件的。
FloadField:浮点类型,映射到数据库中是float类似。
IntegerField:整型。
BigIntegerField:大整型。
PositiveIntegerField:正整型。
SmallIntegerField:小整型。
PositiveSmallIntegerField:正小整型。
TextField:大量的文本类型,映射到数据库中是longtext类型。
UUIDField:只能存储uuid格式的字符串。
URLField:类似于CharField,只不过只能用来存储url格式的字符串,并且默认的max_length是200.
Field的常用参数:
Null:如果设置为True,Django将会在映射表的时候指定是否为空,默认是为False,在使用字符串相关
ORM外键使用
外键:
类定义为class ForeignKey(to,on_delete,**options)。第一个参数是引用的哪个类型,第二个参数是在使用外键引用的模型数据被删除了,这个字段如何处理,比如有CASCADE、SET_NULL等。比如有一个user和一个article两个模型,一个user可以发表多篇文章,一个Article只能有一个Author,并且通过外键进行引用。示例代码:
class User(models.Model):
username=models.CharField(max_length=20)
password=models.CharField(max_length=20)
Class Article(models.Model):
title=models.CharField(max_length=100)
content=models.TextField()
author=models.ForeignKey(“User”,on_delete=models.CASCADE)
外键的定义:
如果想要引用另一个app的模型,那么在传递to参数的时候,使用app.model_name进行指定。
如果模型的外键引用的是本身自己这个模型,那么to参数可以为’self’,或者是这个模型的名字。
外键的使用: