ORM模型常用的Field

导入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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值