• Django笔记六 常用字段类型,字段选项


    字段类型:model下的field对应数据库中的表字段

    1.AutoField 

        itemId = models.AutoField(primary_key=True)

    根据id自动递增,一般和primary_key=True配合使用,设置成主键

    2.CharField

        itemName = models.CharField(max_length=50)

    字符型,对应数据库的varchar,max_length最大长度必填

    3.IntegerField

    1. from django.core.validators import MinValueValidator, MaxValueValidator
    2. caseType = models.IntegerField(validators = [MaxValueValidator(1), MinValueValidator(1)] )

    整数型,对应数据库的int,无必填参数。需要注意的是最大最小校验应该使用validators ,不能使用max_length

    4.DateTimeField DateField

    1. createdTime = models.DateTimeField()
    2. updateTime = models.DateField()

    时间类型,对应数据库的datetime和date。无必填参数

    5.BooleanField

    valStatus = models.BooleanField(default=False)

    布尔型,对应数据库的tinyint,无必填参数。Django操作时只能输入True/False,0/1。如果通过数据库操作是可以录入其他值得。

    6.TextField

    text = models.TextField()

    对应数据库的longtext,无必填参数。需要存储很长的字符串会使用,比如存储文章。

    7.FloatField

    price = models.FloatField()

    浮点类型,无必填参数

    8.DecimalField

    end_plate_lng = models.DecimalField(max_digits=20,decimal_places=10)

    对应数据库的decimal。必填参数max_digits 最大位数,decimal_places 小数位数。

    当对精度有要求时可使用此字段,比如金额,经纬度。

    字段选项:

    1.primary_key

    caseId = models.AutoField(db_column='case_id', primary_key=True, )

    将一个字段设置为该表的主键,每个表只能有一个字段设置primary_key

    2.null

    caseName = models.CharField(max_length=50,null=True,blank=True)

    默认是False,该字典为空时django会将值设为''。

    当为True,该字典为空时django会将值设为null。

    当设置为True时,一个字段为空的表现就会出现两种,空字符串 '' 和 null

    3.blank

    remark = models.CharField(verbose_name="备注", max_length=120, blank=True)

    默认为False,通俗理解表示该字段是否必填。True表示非必填

    4.default

        valStatus = models.BooleanField(default=False)

    为该字段添加默认值,可以是个可调用的对象。

    5.unique

        caseName = models.CharField(max_length=50,,unique=True)

    给该字段添加唯一性校验。如果添加了,那么该字段应该是必填的。

    6.db_index

        caseName = models.CharField(max_length=50,unique=True,db_index=True)

    给字段添加数据库索引。数据库索引会提高查询效率。

    7.auto_now_add auto_now

    1. createdTime = models.DateTimeField(db_column='created_time', verbose_name="创建时间", auto_now_add=True)
    2. updateTime = models.DateTimeField(db_column='updated_time', verbose_name="修改时间", auto_now=True)

    auto_now_add:用于日期和时间字段。新增一条数据时,该字段写入当前时间。一般用于创建时间

    auto_now:用于日期和时间字段。修改一条数据时,该字段写入当前时间。一般用于修改时间

    8.verbose_name

    字段的备注

    9.db_column

    用该参数指定数据库列名。django默认使用字段名当数据库列名。

    在使用django REST进行接口开发,返回json格式的数据,一般接口的参数都是驼峰写法。对应的数据库的列名是用下划线的。在model中定义字段时,直接用驼峰写法,并用db_column来定义列名。

    10.choices

    1. CASE_TYPE_CHOICE = [
    2. (0, "接口"),
    3. (1, "UI")
    4. ]
    5. caseType = models.IntegerField(db_column='case_type', verbose_name="类型", choices=CASE_TYPE_CHOICE, )

    该参数提供字段的可选值,并且会校验。每个元组中第一个值会落到数据库中。

  • 相关阅读:
    ES6之Array.from和Array.of
    机器视觉知识讲的深不如讲的透
    基于Keil a51汇编 —— 标准宏定义
    保单识别易语言代码
    Mysql Explain
    基于Java+SpringBoot+Vue宠物领养系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】
    [附源码]java毕业设计鲜花销售管理系统
    【Linux】多线程
    Django CSRF Bypass
    云原生|kubernetes 你真的学废了吗---实战k8s 一(jsonpath实战)
  • 原文地址:https://blog.csdn.net/a54288447/article/details/126266889