Django--ORM模型Field介绍及外键使用

常用字段:

在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’,或者是这个模型的名字。

外键的使用:
在这里插入图片描述

发布了37 篇原创文章 · 获赞 0 · 访问量 1557

猜你喜欢

转载自blog.csdn.net/u013465115/article/details/104659553
今日推荐