美文网首页Django笔记
Django笔记五之字段类型

Django笔记五之字段类型

作者: vv安的浅唱 | 来源:发表于2023-02-23 00:17 被阅读0次

这篇笔记介绍字段的类型 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 也就是外键等字段类型。

原文链接:https://mp.weixin.qq.com/s/UaWYrwgGQRILEOW3knqcZA

相关文章

  • Django 字段类型

    Django关联mysql文章链接:https://www.jianshu.com/p/c09c0541a9cf

  • Django字段类型清单

    Django字段类型清单 AutoField:自动递增的整型字段,添加记录时它会自动增长。通常不需要直接使用这个字...

  • Django - ORM字段类型

    常使用到的字段类型有: 字符串,数字,时间,二进制。 UrlField和EmailField都是字符串类型。Url...

  • Django关系类型字段

    简述 本文一共三大类,分别是 多对一(外键ForeignKey) 多对多(ManyToManyField) 一对一...

  • Django下模型操作

    一、Django中的字段约束以及约束类型 1.常用字段约束 IntergeField:  整型 CharField...

  • django常用字段类型

    类型说明 AutoField一个自动增加的整数类型字段。通常你不需要自己编写它,Django会自动帮你添加字段:i...

  • python-django 模型model字段类型说明

    python-django 模型model字段类型说明[https://www.cnblogs.com/wt869...

  • django的模型定义

    在模型中定义属性,会生成表中的字段 django根据属性的类型确定以下信息:当前选择的数据库支持字段的类型渲染管理...

  • Django之Model操作

    Django之Model操作 # 一、字段 字段列表 自定义无符号整数字段 注意事项 二、字段参数 三、元信息 四...

  • Golang学习笔记之结构体(struct)

    传送门:Golang学习笔记之方法 结构体(struct)是用户自定义的类型,它代表若干字段的集合。 • 值类型,...

网友评论

    本文标题:Django笔记五之字段类型

    本文链接:https://www.haomeiwen.com/subject/jsjzkdtx.html