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

 更新时间:2022年10月16日 08:43:46   作者:海拥  
这篇文章主要为大家详细介绍了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字段验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python实现with结构的@contextmanager方法详解

    使用Python实现with结构的@contextmanager方法详解

    这篇文章主要介绍了使用Python实现with结构的@contextmanager方法详解,这个结构的好处,一个是简洁,一个是当我们对文件操作的逻辑很长的时候,不会因为忘了关闭文件而造成不必要的错误,需要的朋友可以参考下
    2023-07-07
  • Python小程序编程实现一键自动整理文件解压文件

    Python小程序编程实现一键自动整理文件解压文件

    这篇文章主要为大家介绍了Python小程序编程实现一键自动整理文件解压文件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Python使用itertools模块实现排列组合功能示例

    Python使用itertools模块实现排列组合功能示例

    这篇文章主要介绍了Python使用itertools模块实现排列组合功能,涉及Python基于itertools模块product、permutations与combinations_with_replacement方法进行排列、组合等相关操作实现技巧,需要的朋友可以参考下
    2018-07-07
  • Python实现汇率转换操作

    Python实现汇率转换操作

    这篇文章主要介绍了Python实现汇率转换操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python中的三种注释方法

    python中的三种注释方法

    这篇文章主要介绍了python中的三种注释方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Python发送邮件封装实现过程详解

    Python发送邮件封装实现过程详解

    这篇文章主要介绍了Python发送邮件封装实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python通过WHL文件实现离线安装的操作详解

    Python通过WHL文件实现离线安装的操作详解

    在Python开发中,我们经常需要安装第三方库来扩展Python的功能,通常情况下,我们可以通过pip命令在线安装这些库,此时,WHL(Wheel)文件成为了非常实用的解决方案,本教程将结合实际案例,详细介绍如何通过WHL文件在Python中进行离线安装,需要的朋友可以参考下
    2024-08-08
  • Python基础知识学习之类的继承

    Python基础知识学习之类的继承

    今天带大家学习Python的基础知识,文中对python类的继承作了非常详细的介绍,对正在学习python基础的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • 解决pycharm下pyuic工具使用的问题

    解决pycharm下pyuic工具使用的问题

    这篇文章主要介绍了解决pycharm下pyuic工具使用的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python tkinter界面居中显示的方法

    python tkinter界面居中显示的方法

    今天小编就为大家分享一篇python tkinter界面居中显示的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10

最新评论