日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python?Django教程之模型中字段驗證詳解_python

作者:海擁 ? 更新時間: 2022-11-25 編程語言

對模型中的字段進行驗證

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_messages error_messages參數允許您覆蓋字段將引發的默認消息。傳入包含與要覆蓋的錯誤消息匹配的鍵的字典。 ?
help_text 要與表單小部件一起顯示的額外“幫助”文本。即使您的字段未在表單上使用,它對于文檔也很有用。 ?
verbose_name 字段的人類可讀名稱。如果未給出詳細名稱,Django 將使用字段的屬性名稱自動創建它,并將下劃線轉換為空格。 ?
validators 要為此字段運行的驗證程序列表。 ?
Unique 如果為 True,則此字段在整個表中必須是唯一的。

原文鏈接:https://juejin.cn/post/7154621244665495565

欄目分類
最近更新