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类似

Django中的常用字段类型与参数的更多相关文章

  1. Django中ORM常用字段类型及参数

    常用字段: <1> CharField 字符串字段, 用于较短的字符串. CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的 ...

  2. Django中ORM常用字段及字段参数

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  3. Django models 的常用字段类型和字段参数

    <1> CharField #字符串字段, 用于较短的字符串. #CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符 ...

  4. 潭州课堂25班:Ph201805201 django框架 第七课 常用 字段类型及参数,关系表的实现,表关系对象add,create的方法 (课堂笔记)

    写个类,创建表格 执行命令生成文件 提交,在数据库中创建 进入数据库查看 对数据进行修改操作 只有用到 save() 才能触发 updaer_time 的更改, 下边 update 方法不会修改 up ...

  5. django ORM 增删改查 模糊查询 字段类型 及参数等

    ORM 相关 #sql中的表 #创建表: CREATE TABLE employee( id INT PRIMARY KEY auto_increment , name VARCHAR (), gen ...

  6. Django创建数据库常用字段及参数

    Django创建数据库常用字段及参数 常用字段 1.models.AutoField 自增列= int(11) 如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列 ...

  7. Django模型类之models字段类型和参数以及元数据meta

    models之字段类型和参数 示例: # class Test(models.Model): # courses_test # """测试学习用""& ...

  8. SQL常用字段类型

    中文常用字段类型 1.   名称类    nvarchar(10) 2.   数量       int 3.   时间      date 4.   货币      money 5.   编号     ...

  9. SQL数据库中字段类型 与C#中的对应字段类型

    数据库中的字段类型和对应的C#中的对应字段类型 数据库                 C#程序int int32text stringbigint int64binary System.Byte[] ...

随机推荐

  1. [bzoj3171]循环格

    如果把这个矩阵看成一张图,题目相当于要求每一个点的入度和出度都是1(也就是有很多环),否则指向环的点就无法走回自己了将所有点拆成两个,S向原来的点流(1,0)的边,拆出来的点向T连(1,0)的边,然后 ...

  2. 目前国内UI设计师的发展现状如何?

    在分析这个问题之前,我们先来说说如何优秀的UI设计师所需要具备的素质是什么,只有做到了以下几点,才有资格在这个行业生存下去的能力,也才有机会展望行业的未来前景. 一位合格的UI设计师必须做到以下3点: ...

  3. Codeforces 1264D - Beautiful Bracket Sequence(组合数学)

    Codeforces 题面传送门 & 洛谷题面传送门 首先对于这样的题目,我们应先考虑如何计算一个括号序列 \(s\) 的权值.一件非常显然的事情是,在深度最深的.是原括号序列的子序列的括号序 ...

  4. Codeforces 750E - New Year and Old Subsequence(线段树维护矩阵乘法,板子题)

    Codeforces 题目传送门 & 洛谷题目传送门 u1s1 我做这道 *2600 的动力是 wjz 出了道这个套路的题,而我连起码的思路都没有,wtcl/kk 首先考虑怎样对某个固定的串计 ...

  5. Redis高并发处理常见问题及解决方案

    1. 大型电商系统高流量系统设计 场景: 大量电商系统每天要处理上亿请求,其中大量请求来自商品访问.下单.商品的详情是时刻变化,由于请求量过大,不会频繁去服务端获取商品信息,导致服务器压力极大.需要用 ...

  6. R语言与医学统计图形-【17】ggplot2几何对象之热图

    ggplot2绘图系统--heatmap.geom_rect 这里不介绍更常见的pheatmap包. 1.heatmap函数 基础包. data=as.matrix(mtcars) #接受矩阵 hea ...

  7. dlang 泛型

    1 import std.stdio, std.string; 2 3 void main() 4 { 5 bool find(T)(T[] all, T sub) 6 { 7 foreach(eac ...

  8. excel--CLEAN()函数,解决为什么看着相同的字符串但是len()长度不同

    CLEAN()函数能够有效解决去除字符串中隐藏的字符(这些字符是TRIM()去除不掉的)

  9. 标准非STL容器 : bitset

    1. 概念 什么是"标准非STL容器"?标准非STL容器是指"可以认为它们是容器,但是他们并不满足STL容器的所有要求".前文提到的容器适配器stack.que ...

  10. 【模板】网络最大流(EK、Dinic、ISAP)(网络流)/洛谷P3376

    题目链接 https://www.luogu.com.cn/problem/P3376 题目大意 输入格式 第一行包含四个正整数 \(n,m,s,t\),分别表示点的个数.有向边的个数.源点序号.汇点 ...