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

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Python?Django教程之模型中字段驗(yàn)證詳解_python

作者:海擁 ? 更新時(shí)間: 2022-11-25 編程語(yǔ)言

對(duì)模型中的字段進(jìn)行驗(yàn)證

Django模型中的內(nèi)置字段驗(yàn)證是所有Django字段預(yù)定義的默認(rèn)驗(yàn)證。每個(gè)字段都帶有來(lái)自Django驗(yàn)證器的內(nèi)置驗(yàn)證。例如,IntegerField 附帶了內(nèi)置驗(yàn)證,即它只能存儲(chǔ)整數(shù)值,并且該值也存儲(chǔ)在特定范圍內(nèi)。

極客應(yīng)用程序的 models.py 文件中輸入以下代碼。

from django.db import models
from django.db.models import Model
# 在此處創(chuàng)建模型。

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

	def __str__(self):
		return self.geeks_field

在運(yùn)行臨時(shí)遷移并在Django上遷移并渲染模型之后,讓我們嘗試使用字符串“GfG是最好的”創(chuàng)建一個(gè)實(shí)例。

你可以在管理界面中看到,不能在整數(shù)字段中輸入字符串。同樣,每個(gè)字段都有自己的驗(yàn)證。

基本模型數(shù)據(jù)類型和字段列表

模型最重要的部分和模型的唯一必需部分是它定義的數(shù)據(jù)庫(kù)字段列表。字段由類屬性指定。以下是 Django 中使用的所有字段類型的列表。

字段名稱 描述:
AutoField 它是一個(gè)自動(dòng)遞增的整數(shù)字段。
BigAutoField 它是一個(gè) 64 位整數(shù),很像 AutoField,只是它保證適合從 1 到 9223372036854775807 的數(shù)字。
BigIntegerField 它是一個(gè) 64 位整數(shù),很像 IntegerField,只是它保證適合從 -9223372036854775808 到 9223372036854775807 的數(shù)字。
BinaryField 用于存儲(chǔ)原始二進(jìn)制數(shù)據(jù)的字段。
BooleanField 真/假字段。 此字段的默認(rèn)表單構(gòu)件是復(fù)選框輸入。
CharField 它是用于從小到大尺寸輸入的字符串字段
DateField 日期,在 Python 中由日期時(shí)間.date 實(shí)例表示
? 它用于日期和時(shí)間,在 Python 中由日期時(shí)間.datetime 實(shí)例表示。
DecimalField 它是一個(gè)固定精度的十進(jìn)制數(shù),在 Python 中由十進(jìn)制實(shí)例表示。
DurationField 用于存儲(chǔ)時(shí)間段的字段。
EmailField 它是一個(gè)字符字段,用于檢查值是否為有效的電子郵件地址。
FileField 它是一個(gè)文件上傳字段。
FloatField 它是一個(gè)浮點(diǎn)數(shù),在 Python 中由浮點(diǎn)實(shí)例表示。
ImageField 它從 FileField 繼承所有屬性和方法,但也驗(yàn)證上傳的對(duì)象是否為有效圖像。
IntegerField 它是一個(gè)整數(shù)字段。從 -2147483648 到 2147483647 的值在 Django 支持的所有數(shù)據(jù)庫(kù)中都是安全的。
GenericIPAddressfield 字符串格式的 IPv4 或 IPv6 地址(例如 192.0.2.30 或 2a02:42fe::4)。
NullBooleanField 就像布爾字段一樣,但允許 NULL 作為選項(xiàng)之一。
PositiveIntegerField 類似于整數(shù)域,但必須為正數(shù)或零 (0)。
PositiveSmallIntegerField 就像正整數(shù)字段一樣,但只允許某個(gè)(依賴于數(shù)據(jù)庫(kù)的)點(diǎn)下的值。
SlugField 鼻涕蟲(chóng)是一個(gè)報(bào)紙術(shù)語(yǔ)。slug是某物的簡(jiǎn)短標(biāo)簽,僅包含字母,數(shù)字,下劃線或連字符。它們通常用于網(wǎng)址。
SmallIntegerField 它類似于整數(shù)字段,但只允許某個(gè)(依賴于數(shù)據(jù)庫(kù)的)點(diǎn)下的值。
TextField 一個(gè)大的文本字段。此字段的默認(rèn)表單構(gòu)件是文本區(qū)域。
TimeField 一個(gè)時(shí)間,在 Python 中由日期時(shí)間.time 實(shí)例表示。
URLField 由網(wǎng)址驗(yàn)證的網(wǎng)址的字符字段。
UUIDField 用于存儲(chǔ)通用唯一標(biāo)識(shí)符的字段。使用蟒蛇的 UUID 類。在 PostgreSQL 上使用時(shí),它存儲(chǔ)在 uuid 數(shù)據(jù)類型中,否則存儲(chǔ)在字符(32) 中。

關(guān)系字段

Django還定義了一組表示關(guān)系的字段。

字段名稱 描述:?
ForeignKey 多對(duì)一的關(guān)系。需要兩個(gè)位置參數(shù):與模型相關(guān)的類和on_delete選項(xiàng)。
ManyToManyField 多對(duì)多關(guān)系。需要一個(gè)位置參數(shù):與模型相關(guān)的類,其工作方式與 ForeignKey 完全相同,包括遞歸和惰性關(guān)系。
OneToOneField 一對(duì)一的關(guān)系。從概念上講,這類似于具有 unique=True 的外來(lái)密鑰,但關(guān)系的“反向”端將直接返回單個(gè)對(duì)象。

字段選項(xiàng)

字段選項(xiàng)是為每個(gè)字段提供的參數(shù),用于應(yīng)用某些約束或?qū)⑻囟ㄌ卣髻x予特定字段。例如,將參數(shù) null = True 添加到 CharField 將使其能夠在關(guān)系數(shù)據(jù)庫(kù)中存儲(chǔ)該表的空值。

以下是字符字段可以使用的字段選項(xiàng)和屬性。

字段選項(xiàng) 描述:?
Null 如果為 True,Django 將在數(shù)據(jù)庫(kù)中將空值存儲(chǔ)為?NULL。默認(rèn)值為假。
Blank 如果為?True,則允許該字段為空。默認(rèn)值為假。
db_column 要用于此字段的數(shù)據(jù)庫(kù)列的名稱。如果沒(méi)有給出,Django將使用該字段的名稱。 ?
Default 字段的默認(rèn)值。這可以是值或可調(diào)用的對(duì)象。如果可調(diào)用,則每次創(chuàng)建新對(duì)象時(shí)都會(huì)調(diào)用它。 ?
help_text 要與表單小部件一起顯示的額外“幫助”文本。即使您的字段未在表單上使用,它對(duì)于文檔也很有用。 ?
primary_key 如果為 True,則此字段是模型的主鍵。
editable 如果為 False,則該字段將不會(huì)顯示在管理員或任何其他模型窗體中。在模型驗(yàn)證期間也會(huì)跳過(guò)它們。默認(rèn)值為?True。 ?
error_messages error_messages參數(shù)允許您覆蓋字段將引發(fā)的默認(rèn)消息。傳入包含與要覆蓋的錯(cuò)誤消息匹配的鍵的字典。 ?
help_text 要與表單小部件一起顯示的額外“幫助”文本。即使您的字段未在表單上使用,它對(duì)于文檔也很有用。 ?
verbose_name 字段的人類可讀名稱。如果未給出詳細(xì)名稱,Django 將使用字段的屬性名稱自動(dòng)創(chuàng)建它,并將下劃線轉(zhuǎn)換為空格。 ?
validators 要為此字段運(yùn)行的驗(yàn)證程序列表。 ?
Unique 如果為 True,則此字段在整個(gè)表中必須是唯一的。

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

欄目分類
最近更新