翼度科技»论坛 编程开发 python 查看内容

Django笔记五之字段类型

13

主题

13

帖子

39

积分

新手上路

Rank: 1

积分
39
这篇笔记介绍字段的类型 Field Type。
Django 的model 下的 field 对应的是 MySQL 中的表字段,而我们定义的 field 的类型则对应 MySQL 中的字段类型。
本次主要介绍以下几种:

  • CharField
  • IntegerField
  • DateField/DateTimeField
  • BooleanField
  • FloatField
  • TextField
  • DecimalField
其中,比较重要的 ForeignKey,ManyToMany,OneToOne 类型的我们单开笔记讲解
1、CharField

字符型
对应的是 MySQL 中的 varchar 类型,使用示例如下:
  1. class TestModel(models.Model):
  2.         name = models.CharField(max_length=256)
复制代码
其中,max_length必填属性,用于创建字段的时候确认字段最大长度
字段的其他属性,比如 default,或者 unique 或者 db_index 这些上一篇笔记中提到的属性,都可以根据需要添加。
2、IntegerField

整型
对应的是 MySQL 的 int 类型,使用示例如下:
  1. class TestModel(models.Model):
  2.         page = models.IntegerField(default=0)
复制代码
该字段无必填属性,相关属性可根据需要自行添加。
3、DateField/DateTimeField

分别对应 MySQL 中的 date 和 datetime 类型,使用示例如下:
  1. class TestModel(models.Model):
  2.         updated_date = models.DateField()
  3.         updated_time = models.DateTimeField(auto_now=True)
  4.         created_time = models.DateTimeField(auto_now_add=True)
复制代码
无必填属性
auto_now:可作为更新时间字段的属性,后续在更改字段数据的时候可不用手动修改该值,系统会自动更新该值为当前时间
auto_now_add:可作为创建时间字段的属性,在某条数据建立之初不用手动填写,系统即为其自动写入当前时间,且后续其他字段的更改不会更改该值
以上两个属性默认为 False
4、BooleanField

对应 MySQL 中的 tinyint 类型,使用示例如下:
  1. class TestModel(models.Model):
  2.         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 类型,使用示例如下:
  1. class TestModel(models.Model):
  2.         price = models.FloatField()
复制代码
6、TextField

对应 MySQL 中的 LONGTEXT 字段,使用示例如下:
  1. class TestModel(models.Model):
  2.         text_field = models.TextField()
复制代码
如果需要存储字符长度比较长的数据,可以使用这个类。
7、DecimalField

对应于 MySQL 中的 decimal 字段,使用示例如下:
  1. class TestModel(models.Model):
  2.         decimal_field = models.DecimalField(decimal_places=5, max_digits=20, default=0)
复制代码
必填参数 为:max_digits、decimal_places
其中,max_digits 为可以储存的最大位数,这个数字必须大于或等于 decimal_places
decimal_places 为与数字一起存储的小数位数
也就是说如果要存储最高为 999.99 的数字,精度为小数点后两位,则为:
  1. models.DecimalField(max_digits=5, decimal_places=2)
复制代码
一般来说,如果是对精度要求比较严格的情况下,可以使用这个字段类型。
以上就是这篇笔记的全部内容,在接下来几篇笔记中将会介绍 ForeignKey,ManyToMany,OneToOne 也就是外键等字段类型。
原文链接:Django笔记五之字段类型
本文首发于本人微信公众号:Django笔记。
如果想获取更多相关文章,可扫码关注阅读:


来源:https://www.cnblogs.com/hunterxiong/p/17245568.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具