python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Django字段验证

Python Django教程之模型中字段验证详解

作者:海拥

这篇文章主要为大家详细介绍了Python Django如何对模型中的字段进行验证,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以了解一下

对模型中的字段进行验证

Django模型中的内置字段验证是所有Django字段预定义的默认验证。每个字段都带有来自Django验证器的内置验证。例如,IntegerField 附带了内置验证,即它只能存储整数值,并且该值也存储在特定范围内。

极客应用程序的 models.py 文件中输入以下代码。

from django.db import models
from django.db.models import Model
# 在此处创建模型。

class GeeksModel(Model):
	geeks_field = models.IntegerField()

	def __str__(self):
		return self.geeks_field

在运行临时迁移并在Django上迁移并渲染模型之后,让我们尝试使用字符串“GfG是最好的”创建一个实例。

你可以在管理界面中看到,不能在整数字段中输入字符串。同样,每个字段都有自己的验证。

基本模型数据类型和字段列表

模型最重要的部分和模型的唯一必需部分是它定义的数据库字段列表。字段由类属性指定。以下是 Django 中使用的所有字段类型的列表。

字段名称描述:
AutoField它是一个自动递增的整数字段。
BigAutoField它是一个 64 位整数,很像 AutoField,只是它保证适合从 1 到 9223372036854775807 的数字。
BigIntegerField它是一个 64 位整数,很像 IntegerField,只是它保证适合从 -9223372036854775808 到 9223372036854775807 的数字。
BinaryField用于存储原始二进制数据的字段。
BooleanField真/假字段。 此字段的默认表单构件是复选框输入。
CharField它是用于从小到大尺寸输入的字符串字段
DateField日期,在 Python 中由日期时间.date 实例表示
 它用于日期和时间,在 Python 中由日期时间.datetime 实例表示。
DecimalField它是一个固定精度的十进制数,在 Python 中由十进制实例表示。
DurationField用于存储时间段的字段。
EmailField它是一个字符字段,用于检查值是否为有效的电子邮件地址。
FileField它是一个文件上传字段。
FloatField它是一个浮点数,在 Python 中由浮点实例表示。
ImageField它从 FileField 继承所有属性和方法,但也验证上传的对象是否为有效图像。
IntegerField它是一个整数字段。从 -2147483648 到 2147483647 的值在 Django 支持的所有数据库中都是安全的。
GenericIPAddressfield字符串格式的 IPv4 或 IPv6 地址(例如 192.0.2.30 或 2a02:42fe::4)。
NullBooleanField就像布尔字段一样,但允许 NULL 作为选项之一。
PositiveIntegerField类似于整数域,但必须为正数或零 (0)。
PositiveSmallIntegerField就像正整数字段一样,但只允许某个(依赖于数据库的)点下的值。
SlugField鼻涕虫是一个报纸术语。slug是某物的简短标签,仅包含字母,数字,下划线或连字符。它们通常用于网址。
SmallIntegerField它类似于整数字段,但只允许某个(依赖于数据库的)点下的值。
TextField一个大的文本字段。此字段的默认表单构件是文本区域。
TimeField一个时间,在 Python 中由日期时间.time 实例表示。
URLField由网址验证的网址的字符字段。
UUIDField用于存储通用唯一标识符的字段。使用蟒蛇的 UUID 类。在 PostgreSQL 上使用时,它存储在 uuid 数据类型中,否则存储在字符(32) 中。

关系字段

Django还定义了一组表示关系的字段。

字段名称描述: 
ForeignKey多对一的关系。需要两个位置参数:与模型相关的类和on_delete选项。
ManyToManyField多对多关系。需要一个位置参数:与模型相关的类,其工作方式与 ForeignKey 完全相同,包括递归和惰性关系。
OneToOneField一对一的关系。从概念上讲,这类似于具有 unique=True 的外来密钥,但关系的“反向”端将直接返回单个对象。

字段选项

字段选项是为每个字段提供的参数,用于应用某些约束或将特定特征赋予特定字段。例如,将参数 null = True 添加到 CharField 将使其能够在关系数据库中存储该表的空值。

以下是字符字段可以使用的字段选项和属性。

字段选项描述: 
Null如果为 True,Django 将在数据库中将空值存储为 NULL。默认值为假。
Blank如果为 True,则允许该字段为空。默认值为假。
db_column要用于此字段的数据库列的名称。如果没有给出,Django将使用该字段的名称。  
Default字段的默认值。这可以是值或可调用的对象。如果可调用,则每次创建新对象时都会调用它。  
help_text要与表单小部件一起显示的额外“帮助”文本。即使您的字段未在表单上使用,它对于文档也很有用。  
primary_key如果为 True,则此字段是模型的主键。
editable如果为 False,则该字段将不会显示在管理员或任何其他模型窗体中。在模型验证期间也会跳过它们。默认值为 True。  
error_messageserror_messages参数允许您覆盖字段将引发的默认消息。传入包含与要覆盖的错误消息匹配的键的字典。  
help_text要与表单小部件一起显示的额外“帮助”文本。即使您的字段未在表单上使用,它对于文档也很有用。  
verbose_name字段的人类可读名称。如果未给出详细名称,Django 将使用字段的属性名称自动创建它,并将下划线转换为空格。  
validators要为此字段运行的验证程序列表。  
Unique如果为 True,则此字段在整个表中必须是唯一的。

到此这篇关于Python Django教程之模型中字段验证详解的文章就介绍到这了,更多相关Django字段验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文