Python 教程之 Django(9)对模型中的字段进行验证

简介: Python 教程之 Django(9)对模型中的字段进行验证

对模型中的字段进行验证

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是最好的”创建一个实例。

image.png

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

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

模型最重要的部分和模型的唯一必需部分是它定义的数据库字段列表。字段由类属性指定。以下是 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_messages error_messages参数允许您覆盖字段将引发的默认消息。传入包含与要覆盖的错误消息匹配的键的字典。  
help_text 要与表单小部件一起显示的额外“帮助”文本。即使您的字段未在表单上使用,它对于文档也很有用。  
verbose_name 字段的人类可读名称。如果未给出详细名称,Django 将使用字段的属性名称自动创建它,并将下划线转换为空格。  
validators 要为此字段运行的验证程序列表。  
Unique 如果为 True,则此字段在整个表中必须是唯一的。


目录
相关文章
|
4天前
|
数据可视化 Python
Python模型评估与选择:面试必备知识点
【4月更文挑战第17天】本文深入探讨了Python模型评估与选择在面试中的关键点,包括性能度量、过拟合与欠拟合识别、模型比较与选择、模型融合和偏差-方差权衡。强调了避免混淆评估指标、忽视模型验证和盲目追求高复杂度模型的常见错误,并提供相关代码示例,如交叉验证、网格搜索和超参数调优。通过理解这些概念和技巧,可在面试中展示出色的数据科学能力。
31 12
|
6天前
|
机器学习/深度学习 数据可视化 Linux
python用ARIMA模型预测CO2浓度时间序列实现
python用ARIMA模型预测CO2浓度时间序列实现
18 0
|
6天前
|
Python 数据可视化 索引
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
20 0
PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化
|
6天前
|
机器学习/深度学习 Python 数据处理
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
28 0
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据
|
6天前
|
数据挖掘 vr&ar Python
Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用
32 10
|
6天前
|
机器学习/深度学习 存储 算法
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
26 7
|
6天前
|
vr&ar Python
Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列4
Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列
30 0
|
6天前
|
机器学习/深度学习 算法 数据可视化
python用支持向量机回归(SVR)模型分析用电量预测电力消费
python用支持向量机回归(SVR)模型分析用电量预测电力消费
27 7
|
6天前
|
数据可视化 算法 Python
python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
17 0
|
7天前
|
机器学习/深度学习
模型选择与调优:scikit-learn中的交叉验证与网格搜索
【4月更文挑战第17天】在机器学习中,模型选择和调优至关重要,scikit-learn提供了交叉验证和网格搜索工具。交叉验证(如k折、留一法和分层k折)用于评估模型性能和参数调优。网格搜索(如GridSearchCV和RandomizedSearchCV)遍历或随机选择参数组合以找到最优设置。通过实例展示了如何使用GridSearchCV对随机森林模型进行调优,强调了理解问题和数据的重要性。