程序员

Django ORM常用字段

2019-02-28  本文已影响18人  阿提艾斯

参考资料[1]

一、常用字段

from django.db import models

1、测试学习用

models.AutoField() #自增长字段,默认Int值
models.BigAutoField()

2、二进制数据

models.BinaryField()

3、布尔型

models.BooleanField()
models.NullBooleanField()

4、整型

models.PositiveSmallIntegerField() #5个字节
models.SmallIntegerField() #6个字节
models.PositiveIntegerField() #10个字节
models.IntegerField() #11个字节
models.BigIntegerField() #20个字节

5、字符串类型

models.CharField() #varchar
model.TextField() #longtext

6、时间日期类型

models.DateField() #年月日
models.DateTimeField() #年月日时分秒
models.DurationField() #int, Python timedelta实现

7、浮点型

models.FloatField()
models.DecimalField()

8、其他字段

models.EmailField() #邮箱
models.ImageField()
models.FileField()
models.FilePathField()
models.URLField()
models.UUIDField()
models.GenericIPAddressField()

二、字段参数

1、所有字段都有的参数

db_column="xxx" #修改字段的名字为xxx
primary_key=True #设置主键
verbose_name="11个字节大小" #设置字段的别名备注
unique=True #该字段的数据在表中唯一
null=True, blank=True #null是对数据库来说允许为空,blank是表单提交时允许为空
db_index=True #给字段设置索引
help_text="这个是Longtext" #在表单中显示帮助信息
editable=False #用户不能对字段的内容进行编写

2、个别字段才有的参数

models.CharField(max_length=100) #utf8编码的100个字符串
models.DateField(unique_for_date=True,auto_now=True) #表示这个字段的日期必须为1,更新当前记录的时间
models.DateTimeField(unique_for_month=True, auto_now_add=True) #表示这个字段的月份必须为1,增加记录时的当前时间
models.DecimalField(max_digits=4, decimal_places=2) #共有4位,小数点后2位

3、关系型字段的参数

related_name="one" #用于外键关联中的反向查询,通过父表查询子表
on_delete=models.CASCADE #表示当外键关联的对象被删除的时候,要进行的操作,共有6种操作
models.CASCADE:删除级联
models.PROTECT:当被关联的数据被删除时,就会报ProtectedError异常
models.SET_NULL:删除置空,只有当该字段设置了null=True时,方可使用该值
models.SET_DEFAULT:父表的数据被删除,给子表的外键设置一个默认值
models.DO_NOTHING:父表的数据被删除,子表什么都不做
models.SET():
参考资料:
[1] https://www.imooc.com/video/18454
[2] 更多https://docs.djangoproject.com/en/dev/ref/models/fields/#field-types

上一篇下一篇

猜你喜欢

热点阅读