这篇笔记介绍字段的类型 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 笔记五之字段类型
如果想获取更多相干文章,可扫码关注浏览: