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字段验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Flask数据库迁移简单介绍

    Flask数据库迁移简单介绍

    这篇文章主要为大家详细介绍了Flask数据库迁移简单工作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 一文教会你用Python绘制动态可视化图表

    一文教会你用Python绘制动态可视化图表

    数据可视化是数据科学中关键的一步,下面这篇文章主要给大家介绍了关于如何利用Python绘制动态可视化图表的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Tornado Application的实现

    Tornado Application的实现

    本文主要介绍了Tornado Application的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 没有安装Python的电脑运行Python代码教程

    没有安装Python的电脑运行Python代码教程

    你有没有遇到过这种情况,自己辛苦码完了代码想发给别人运行看效果,可是对方竟然没安装Python,这要怎么运行呢?本篇文章带你解决这个问题,需要的朋友快来看看
    2021-10-10
  • python之如何将标签转化为one-hot(独热编码)

    python之如何将标签转化为one-hot(独热编码)

    这篇文章主要介绍了python之如何将标签转化为one-hot(独热编码)问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • numpy.array 操作使用简单总结

    numpy.array 操作使用简单总结

    这篇文章主要介绍了numpy.array 操作使用简单总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 解决pycharm py文件运行后停止按钮变成了灰色的问题

    解决pycharm py文件运行后停止按钮变成了灰色的问题

    今天小编就为大家分享一篇解决pycharm py文件运行后停止按钮变成了灰色的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python 实现毫秒级淘宝抢购脚本的示例代码

    Python 实现毫秒级淘宝抢购脚本的示例代码

    本篇文章主要介绍了Python 通过selenium实现毫秒级自动抢购的示例代码,通过扫码登录即可自动完成一系列操作,抢购时间精确至毫秒,可抢加购物车等待时间结算的,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • 开启Django博客的RSS功能的实现方法

    开启Django博客的RSS功能的实现方法

    这篇文章主要介绍了开启Django博客的RSS功能的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • python实现诗歌游戏(类继承)

    python实现诗歌游戏(类继承)

    这篇文章主要为大家详细介绍了python实现诗歌游戏,根据上句猜下句、猜作者、猜朝代、猜诗名,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02

最新评论