美文网首页程序员
Django ORM常用字段

Django ORM常用字段

作者: 阿提艾斯 | 来源:发表于2019-02-28 10:03 被阅读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

    相关文章

      网友评论

        本文标题:Django ORM常用字段

        本文链接:https://www.haomeiwen.com/subject/asbcuqtx.html