zoukankan      html  css  js  c++  java
  • Django中的常用字段类型与参数

    Django中的常用字段类型

    1. 数值型

    以下都是数值相关的,比如AutoField,它在MySQL中的类型为int(11),而BooleanField在MySQL中对应的类型是tinyint(1)

    AutoField int(11)

    自增主键,Django Model默认提供,可以被重写。它的完整定义是id=models.AutoField(primary_key=True)

    BooleanField tinyint(1)

    布尔类型字段,一般用于记录状态标记

    DecimalField decimal

    开发对数据精度要求较高的业务时考虑使用,比如做支付相关,金融相关。定义时,需要指定到多少位,比如cash = models.DecimalField(max_digits=8, decimal_placee=2, default=0, verbose_name="消费金额")就是定义长度为8位、精度为2的数字。比方说,你想保存666.66这样的数字那么你的max_digits就需要为5,decimal_places需要为2

    值得注意的是,在Python中也要使用Decimal类型来转换数据(from decimal import Decimal)

    IntegerField int(11)

    它同AutoField一样,唯一的差别就是不自增

    PositiveIntegerField

    与IntegerField一样,但只包含正整数

    SmallIntegerField smallint

    小整数时一般会用到

    2. 字符型

    以下这些字段都是用来存储字符数据的,对应在MySQL中有两种类型:longtext和varchar

    除了TextField是longtext类型外,其他均属于varchar类型。

    CharField varchar

    基础的varchar类型

    URLField

    继承自CharField,但是实现了对URL的特殊处理

    UUIDField char(32)

    除了在PostgreSQL中使用的是uuid类型外,在其他数据库中均是固定长度char(32),用来存放生成的唯一id

    EmailField

    同URLField一样,他继承自CharField,多了对E-mail的特殊处理

    FileField

    同URLField一样,它继承自CharField,多了对文件的特殊处理。当你定义一个字段为FileField时,在admin部分展示时会自动生成一个可上传文件的按钮。

    TextField longtext

    一般用来存放大量文本内容,比如新闻正文、博客正文

    ImageField

    继承自FileField,用来处理图片相关的数据,在展示上会有所不同

    3. 日期类型

    以下都为日期类型,分别对应MySQL的date、datetime和time

    DateField

    DateTimeField

    TimeField

    4. 关系类型

    这是关系型数据库中比较重要的字段类型,用来关联两个表,具体如下:

    ForeignKey

    OneToOneField

    ManyToManyField

    Django中的常用字段参数

    null

    可以同blank对比考虑,其中null用于设定在数据库层面是否允许为空

    blank

    针对业务层面,该值是否允许为空。

    choices

    配置字段的choices后,在admin页面上就可以看到对应的选项展示。

    db column

    默认情况下,我们定义的Field就是对应数据库中的字段名称,通过这个参数可以指定Model中的某个字段对应数据库中的哪个字段。

    db_ index

    索引配置。对于业务上需要经常作为查询条件的字段,应该配置此项。

    default

    默认值配置。

    editable

    是否可编辑,默认是True。 如果不想将这个字段展示到页面上,可以配置为False。

    error_ messages

    用来自定义字段值校验失败时的异常提示,它是字典格式。key 的可选项为null、blank、invalid、invalid_choice、unique 和unique_for_date

    help_text

    字段提示语,配置这一项后,在页面对应字段的下方会展示此配置。

    primary_key

    主键,一个Model只允许设置一个字段为 primary_key。

    unique

    唯一约束,当需要配置唯一值时,设置unique=True, 设置此项后,不需要设置db_ index。

    unique_ for_ date

    针对date (日期)的联合约束,比如我们需要一 天只能有一篇名为《Django》的文章,那么可以在定义title字段时配置参数: unique _for_date="created time"。

    需要注意的是,这并不是数据库层面的约束。

    unique_ for_ month

    针对月份的联合约束

    unique_ for_ year

    针对年份的联合约束。

    verbose_ name

    字段对应的展示文案。

    validators

    自定义校验逻辑,同form类似

  • 相关阅读:
    【个人杂谈】MacBook Pro的使用心得
    【网页加速】lua redis的二次升级
    使用Openresty加快网页速度
    中间件——canal小记
    Java面试总结(二)
    RedissonLock分布式锁源码分析
    面试总结
    Spring AOP小记
    谈谈个人网站的建立(八)—— 缓存的使用
    Kafka、Logstash、Nginx日志收集入门
  • 原文地址:https://www.cnblogs.com/zihao1037/p/11038705.html
Copyright © 2011-2022 走看看