Django模型中最重要并且也是唯一必须执行的就是字段定义。字段在类中进行定义,对应于实体数据库的字段。另外,定义模型字段名时为了避免冲突,不建议使用模型API中已经定义的关键字。
字段类型用以指定数据库的数据类型,例如Integer、VARCHAR和TEXT这几种比较常用的数据类型。在Django模型定义中,字段类型均派生自Field类的实例。Django框架中的Field类是一个抽象类,专门用于定义数据库表的列表项。
Django模型一共内置了多种字段类型,基本能够满足一般的设计需求。Django模型的主要字段类型说明如下:
- AutoField:一个自动增加的Integer类型。一般情况下,AutoField类型是不需要直接使用的,域的主键会自动被添加到模型中。
- BigAutoField:类似AutoField类型,一个自动增加的长Integer(64-bit)类型(1~9223372036854775807)。
- IntegerField:一个Integer类型(−2147483648~2147483647)。
- BigIntegerField:一个长Integer类型(−9223372036854775808~9223372036854775807)。
- SmallIntegerField:一个Small Integer类型(−32768~32767)。
- BinaryField:一个用来存储二进制数据的类型。
- BooleanField:一个用来存储布尔值(True / False)的类型。
- NullBooleanField:类似BooleanField(null=True)类型。
- FloatField:一个用来存储浮点型数据的类型,表示Python语言中的float实例。
- CharField:一个用来存储字符串的类型。CharField类型必须额外定义一个表示最大长度的参数——CharField.max_length。
- DateField:一个用来存储日期的类型,表示Python语言中的datetime.date实例。CharField类型可以额外定义两个可选参数——DateField.auto_now和DateField.auto_now_add。其中,DateField.auto_now参数用于自动获取当前时间,DateField.auto_now_add参数用于在对象第一次创建时自动获取当前时间。
- DateTimeField:一个用来存储日期和时间的类型,表示Python语言中的datetime.datetime 实例。
- TimeField:一个用来存储时间的类型,表示Python语言中的datetime.time实例。
- DecimalField:一个用来存储十进制数据的类型,表示Python语言中的Decimal实例。DecimalField类型需要定义两个必选参数——DecimalField.max_digits和 DecimalField.decimal_places。其中,DecimalField.max_digits参数表示最大数值, DecimalField.decimal_places参数表示存储位置。
- DurationField:一个用来存储时间间隔的类型,表示Python语言中的timedelta。
- EmailField:一个CharField类型的域,用于表示电子邮件类型。
- FileField:一个用于文件上传的类型。FileField类型需要定义两个必选参数——FileField.upload_to和 FileField.storage。其中,FileField.upload_to参数表示存储路径,FileField.storage参数表示存储对象。
- TextField:一个用于存储文本的类型,在表单域中默认使用TextArea小部件(Widget)。
- ImageField:一个用来存储Image文件的类型,继承自FileField类型。ImageField类型需要定义两个必选参数——ImageField.height_field和ImageField.width_field。其中,ImageField.height_field参数表示Image文件的高度,ImageField.width_field参数表示Image文件的宽度。
- GenericIPAddressField:一个用来存储原生IP(IPv4或IPv6)地址的类型,在表单域中默认使用TextInput小部件(Widget)。
- URLField:一个用来存储URL的类型,继承自CharField类型,在表单域中默认使用TextInput小部件(Widget)。
《Django 5企业级Web应用开发实战(视频教学版)》1-7章样章,评估一下看看如何。配套示例源码、PPT课件、教学视频,可以通过前言给出的下载方式下载。
百度网盘:百度网盘 请输入提取码
本文节选自《Django 5企业级Web应用开发实战(视频教学版)》,获出版社和作者授权发布。