Django 4.2 复习笔记(三)Model模型字段

J.sky
Django
2023/5/24

Django的ORM在Python中算是数一数二的,使用起来非常的简单和丝滑,文档也写的简单直观,相对于SQLAlchemy有过之而无不及。

模型字段

常用的字段选项:

<table> <thead> <tr> <th>选项</th> <th>作用</th> </tr> </thead> <tbody> <tr> <td>null</td> <td>如果是 True, Django 将在数据库中存储空值为 NULL。默认为 False。</td> </tr> <tr> <td>blank</td> <td>如果是 True ,该字段允许为空。默认为 False 。</td> </tr> <tr> <td>db_index</td> <td>如果是 True,将为该字段创建数据库索引。</td> </tr> <tr> <td>default</td> <td>该字段的默认值。可以是一个值或者是个可调用的对象,如果是个可调用对象,每次实例化模型时都会调用该对象。</td> </tr> <tr> <td>help_text</td> <td>额外的“帮助”文本,随表单控件一同显示。即便你的字段未用于表单,它对于生成文档也是很有用的。</td> </tr> <tr> <td>primary_key</td> <td>如果设置为 True ,将该字段设置为该模型的主键。</td> </tr> <tr> <td>unique</td> <td>如果设置为 True,这个字段必须在整个表中保持值唯一。</td> </tr> <tr> <td>verbose_name</td> <td>字段的一个人类可读名称,如果没有给定详细名称,Django 会使用字段的属性名自动创建,并将下划线转换为空格。</td> </tr> <tr> <td>validators</td> <td>要为该字段运行的验证器列表</td> </tr> </tbody> </table>

常见字段类型:

<table> <thead> <tr> <th>名称</th> <th>作用</th> </tr> </thead> <tbody> <tr> <td>AutoField</td> <td>一个 IntegerField,根据可用的 ID 自动递增。你通常不需要直接使用它;如果你没有指定,主键字段会自动添加到你的模型中。</td> </tr> <tr> <td>BooleanField</td> <td>单元一个 true/false 字段。格</td> </tr> <tr> <td>DateField</td> <td>一个日期,在 Python 中用一个 datetime.date 实例表示。有一些额外的、可选的参数。</td> </tr> <tr> <td>DateTimeField</td> <td>一个日期和时间,在 Python 中用一个 datetime.datetime 实例表示。</td> </tr> <tr> <td>EmailField</td> <td>一个 CharField,使用 EmailValidator 来检查该值是否为有效的电子邮件地址。</td> </tr> <tr> <td>FileField</td> <td>一个文件上传字段</td> </tr> <tr> <td>ImageField</td> <td>继承 FileField 的所有属性和方法,但也验证上传的对象是有效的图像。</td> </tr> <tr> <td>IntegerField</td> <td>一个整数。从 -2147483648 到 2147483647 的值在 Django 支持的所有数据库中都是安全的。</td> </tr> <tr> <td>CharField</td> <td>一个字符串字段,适用于小到大的字符串。</td> </tr> <tr> <td>TextField</td> <td>一个大的文本字段。该字段的默认表单部件是一个 Textarea。</td> </tr> <tr> <td>TimeField</td> <td>一个时间,在 Python 中用 datetime.time 实例表示。接受与 DateField 相同的自动填充选项。</td> </tr> <tr> <td>UUIDField</td> <td>一个用于存储通用唯一标识符的字段。使用 Python 的 UUID 类。当在 PostgreSQL 上使用时,它存储在一个 uuid 的数据类型中,否则存储在一个 char(32) 中。</td> </tr> </tbody> </table>

关系字段:

<table> <tr> <th>名称</th> <th>作用</th> </tr> <tr> <td>ForeignKey</td> <td>一个多对一的关系。</td> </tr> <tr> <td>ManyToManyField</td> <td>一个多对多的关系</td> </tr> <tr> <td>OneToOneField</td> <td>一对一的关系。概念上,这类似于 ForeignKey 与 unique=True,但关系的“反向”将直接返回一个单一对象。</td> </tr> </table>

关系字段极大的简化了数据中表关系的设置。

参考:

模型字段参考