Django笔记五之字段类型
这篇笔记介绍字段的类型 Field Type。
Django 的model 下的 field 对应的是 MySQL 中的表字段,而我们定义的 field 的类型则对应 MySQL 中的字段类型。
本次主要介绍以下几种:
- CharField
- IntegerField
- DateField/DateTimeField
- BooleanField
- FloatField
- TextField
- DecimalField
其中,比较重要的 ForeignKey,ManyToMany,OneToOne 类型的我们单开笔记讲解
1、CharField
字符型
对应的是 MySQL 中的 varchar 类型,使用示例如下:
class TestModel(models.Model):
name = models.CharField(max_length=256)
其中,max_length 为必填属性,用于创建字段的时候确认字段最大长度
字段的其他属性,比如 default,或者 unique 或者 db_index 这些上一篇笔记中提到的属性,都可以根据需要添加。
2、IntegerField
整型
对应的是 MySQL 的 int 类型,使用示例如下:
class TestModel(models.Model):
page = models.IntegerField(default=0)
该字段无必填属性,相关属性可根据需要自行添加。
3、DateField/DateTimeField
分别对应 MySQL 中的 date 和 datetime 类型,使用示例如下:
class TestModel(models.Model):
updated_date = models.DateField()
updated_time = models.DateTimeField(auto_now=True)
created_time = models.DateTimeField(auto_now_add=True)
无必填属性
auto_now:可作为更新时间字段的属性,后续在更改字段数据的时候可不用手动修改该值,系统会自动更新该值为当前时间
auto_now_add:可作为创建时间字段的属性,在某条数据建立之初不用手动填写,系统即为其自动写入当前时间,且后续其他字段的更改不会更改该值
以上两个属性默认为 False
4、BooleanField
对应 MySQL 中的 tinyint 类型,使用示例如下:
class TestModel(models.Model):
is_right = models.BooleanField(default=False)
使用 Django 操作数据,写入这个字段的时候,我们可以写入 0/1,或者 False/True 这两个值。
因为 MySQL 中存入的时候 tinyint 类型的数据,所以其实在 数据库中 这个字段的值是不止 0/1 这两个可选值的,但是如果通过 Django 写入,系统会对写入的数据做规范,仅能写入 0/1 或 False/True,写入其他数据会返回报错。
注: 如果直接操作数据库,是可以写入 0/1 之外的数据的
5、FloatField
对应 MySQL 中的 DOUBLE 类型,使用示例如下:
class TestModel(models.Model):
price = models.FloatField()
6、TextField
对应 MySQL 中的 LONGTEXT 字段,使用示例如下:
class TestModel(models.Model):
text_field = models.TextField()
如果需要存储字符长度比较长的数据,可以使用这个类。
7、DecimalField
对应于 MySQL 中的 decimal 字段,使用示例如下:
class TestModel(models.Model):
decimal_field = models.DecimalField(decimal_places=5, max_digits=20, default=0)
必填参数 为:max_digits、decimal_places
其中,max_digits 为可以储存的最大位数,这个数字必须大于或等于 decimal_places
decimal_places 为与数字一起存储的小数位数
也就是说如果要存储最高为 999.99 的数字,精度为小数点后两位,则为:
models.DecimalField(max_digits=5, decimal_places=2)
一般来说,如果是对精度要求比较严格的情况下,可以使用这个字段类型。
以上就是这篇笔记的全部内容,在接下来几篇笔记中将会介绍 ForeignKey,ManyToMany,OneToOne 也就是外键等字段类型。
原文链接:Django笔记五之字段类型
本文首发于本人微信公众号:Django笔记。
如果想获取更多相关文章,可扫码关注阅读:

Django笔记五之字段类型的更多相关文章
- Django中的常用字段类型与参数
Django中的常用字段类型 1. 数值型 以下都是数值相关的,比如AutoField,它在MySQL中的类型为int(11),而BooleanField在MySQL中对应的类型是tinyint(1) ...
- Django文档——Model字段类型(Field Types)
大部分内容参考自http://wrongwaycn.github.io/django11/topics/db/models/index.html#topics-db-models ,内容是django ...
- Django models 的常用字段类型和字段参数
<1> CharField #字符串字段, 用于较短的字符串. #CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符 ...
- Django中ORM常用字段类型及参数
常用字段: <1> CharField 字符串字段, 用于较短的字符串. CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的 ...
- django中模型详解-字段类型与约束条件
这片博文来详细说明django模型的使用,涉及到django模型的创建,字段介绍,以及django模型的crud操作,以及一对一等操作. 在使用模型之前,我们首先设置数据库选项,django的默认数据 ...
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
- 字符编码,存储引擎及MySQL字段类型相关知识点
字符编码,存储引擎及MySQL字段类型相关知识点 一.字符编码 1.在终端输入\s,查看数据库的基本信息(当前用户,版本,编码,端口号) 2.默认的配置文件是my-default.ini 拷贝上述的文 ...
- Django ORM中常用的字段类型以及参数配置
一.数值型 AutoField对应int(11).自增主键,Django Model默认提供,可以被重写. BooleanField对应tinyint(1).布尔类型字段,一般用于记录状态标记. De ...
- Django框架:8、聚合查询、分组查询、F与Q查询、ORM查询优化、ORM事务操作、ORM常用字段类型、ORM常用字段参数
Django 数据库 目录 Django 数据库 一.聚合查询 二.分组查询 三.F查询与Q查询 1.F查询 2.Q查询 3.Q查询进阶操作 四.ORM查询优化 1.only与defer 五.ORM事 ...
- Django model字段类型清单
转载:<Django model字段类型清单> Django 通过 models 实现数据库的创建.修改.删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField ...
随机推荐
- 策略模式demo
/** StrategyContext. */ public class StrategyContext { private Strategy strategy; // 传入的是Strategy的实现 ...
- Unity中实现在规定时间内从一个值递增到另一个值
1.进度条(在规定时间内完成进度条) private Image progressBar; private float currentProgress = 0; /// <summary> ...
- Python人脸识别——电脑摄像头检测人脸与眼睛
##10 电脑摄像头检测人脸与眼睛 import cv2 #检测图片 def detect(frame): #灰度化图片,减少运算量 #img = cv2.cvtColor(frame ...
- 港湾云服务器 香港新世界 节点 centos7.7 64 部署java项目
开通云服务器 使用Xshell远程登录 XFTP连接服务器查看文件(这个步骤可有可无) yum安装jdk 在linux上使用yum安装是非常粗暴无脑的,但仍然有需要注意的点,不然会掉坑里.这里说一下步 ...
- CatDCGAN项目复现与对抗网络初识
CatDCGAN项目复现与对抗网络初识 作者 CarpVexing 日期 100521 禁止转载 目录 CatDCGAN项目复现与对抗网络初识 引言 CatDCGAN项目基本信息 复现项目的准备工作 ...
- 更新Vue-cli4与Eslint插件自动保存
Vue-cli更新 此更新为Vue-cli3更新为4,可使用node来查看本机的安装版本,vue -V,此版本(cli4)需要node v8.9 或更高版本 (推荐 v10 以上),查看node版本可 ...
- 【javascript】关于charCodeAt()方法
在做算法题目leetcode 2283时,看见某些答案会使用charCodeAt(),因为自己没用过,所以作此纪录 描述在 JavaScript 中,charCodeAt() 是一种字符串方法,用于检 ...
- 接口测试之object []如何类型传参
接口测试时参数类型为object[],时如单选,多选提.传参值如下
- bug单建单规范
bug提单保证,清晰.简单.明了. 标题: [版本][服务器][模块][必现/偶现]bug标题(最短的话描述bug) 例:[0.9.0][dev][系统][必现]点击商店,跳转到仓库页面 bug模 ...
- vue路由重复跳转导致控制台报错
重复跳转了同一个页面,导致空值台报错了! 解决思路: 方案1:在路由跳转时捕获错误. 1.1 全局捕获处理 //index.js import VueRouter from 'vue-router' ...