首页 > 其他分享 >Django笔记五之字段类型

Django笔记五之字段类型

时间:2023-03-22 21:46:08浏览次数:71  
标签:示例 models 笔记 Django 五之字 字段 MySQL 类型

这篇笔记介绍字段的类型 Field Type。

Django 的model 下的 field 对应的是 MySQL 中的表字段,而我们定义的 field 的类型则对应 MySQL 中的字段类型。

本次主要介绍以下几种:

  1. CharField
  2. IntegerField
  3. DateField/DateTimeField
  4. BooleanField
  5. FloatField
  6. TextField
  7. 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笔记。

如果想获取更多相关文章,可扫码关注阅读:

标签:示例,models,笔记,Django,五之字,字段,MySQL,类型
From: https://www.cnblogs.com/hunterxiong/p/17245568.html

相关文章

  • 构建之法阅读笔记1
    构建之法是建民老师推荐我们必读的一本著作,我读完前几章后,浅写个读后感,这本书前几章讲解了软件工程的含义以及设计文档,单元测试的重要性还有如何成长为软件工程师。我学习......
  • React 的学习笔记一 (未完结)
    一、React是什么 React是一个声明式,高效且灵活的用于构建用户界面的JavaScript库。使用React可以将一些简短、独立的代码片段组合成复杂的UI界面,这些代码片段被......
  • Vue3学习笔记 —— 状态管理、Vuex、Pinia (未完结)
    优秀文章分享:vue中使用vuex(超详细)-掘金(juejin.cn)一、状态管理1.1、什么是状态管理?理论上来说,每一个Vue组件实例都已经在“管理”它自己的响应式状态了。我们以......
  • 构建之法阅读笔记01
    编程是艺术,开发是工程比起一门编程语言,软件工程的入门过程,要难得多。盖因一门语言,其语法、关键字、系统库和常用工具,总是确定而有限的。而软件工程,作为工程学的一个门类,它......
  • 英语四级写作笔记
    作文开头引用谚语Aproverbsays,""引用句子Itgoeswithoutsayingthat.无需多言Aseveryoneknows……2.引用数据Accordingtoarecentsurveycondu......
  • Excel数据分析学习笔记
                        ......
  • Cadence入门笔记(八):覆铜、过孔阵列和丝印
    覆铜设计好线路后,为了提高信号和电源完整性,一般对PCB进行覆铜操作选择添加shape,添加一个长方形和板框差不多的覆铜即可记得要选dynamiccopper动态覆铜,这样覆铜生成......
  • ICMP协议说明-笔记
    ICMP协议说明-笔记ICMP的作用:​ ICMP是Internet控制报文协议,主要是传递控制信息的,而且是无连接的协议。当遇到IP路由器无法按当前的传输速率转发数据包等情况时,会自动发......
  • 算法笔记的笔记——第6章 C++标准模板库(STL)
    vector变长数组长度根据需要而自动改变的数组可以用来以邻接表的方式储存图使用头文件:#include<vector>命名空间:usingnamespacestd;定义vector<typename>n......
  • Spring笔记
    spring1.创建项目GroupID是项目组织唯一的标识符,比如我的项目叫test001 那么GroupID应该是com.lixiaoming.test001域名.公司名.项目名ArtifactID就是项目的唯一的......