Python Django教程之模型中字段驗證詳解
對模型中的字段進(jìn)行驗證
Django模型中的內(nèi)置字段驗證是所有Django字段預(yù)定義的默認(rèn)驗證。每個字段都帶有來自Django驗證器的內(nèi)置驗證。例如,IntegerField 附帶了內(nèi)置驗證,即它只能存儲整數(shù)值,并且該值也存儲在特定范圍內(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)行臨時遷移并在Django上遷移并渲染模型之后,讓我們嘗試使用字符串“GfG是最好的”創(chuàng)建一個實例。
你可以在管理界面中看到,不能在整數(shù)字段中輸入字符串。同樣,每個字段都有自己的驗證。
基本模型數(shù)據(jù)類型和字段列表
模型最重要的部分和模型的唯一必需部分是它定義的數(shù)據(jù)庫字段列表。字段由類屬性指定。以下是 Django 中使用的所有字段類型的列表。
字段名稱 | 描述: |
---|---|
AutoField | 它是一個自動遞增的整數(shù)字段。 |
BigAutoField | 它是一個 64 位整數(shù),很像 AutoField,只是它保證適合從 1 到 9223372036854775807 的數(shù)字。 |
BigIntegerField | 它是一個 64 位整數(shù),很像 IntegerField,只是它保證適合從 -9223372036854775808 到 9223372036854775807 的數(shù)字。 |
BinaryField | 用于存儲原始二進(jìn)制數(shù)據(jù)的字段。 |
BooleanField | 真/假字段。 此字段的默認(rèn)表單構(gòu)件是復(fù)選框輸入。 |
CharField | 它是用于從小到大尺寸輸入的字符串字段 |
DateField | 日期,在 Python 中由日期時間.date 實例表示 |
它用于日期和時間,在 Python 中由日期時間.datetime 實例表示。 | |
DecimalField | 它是一個固定精度的十進(jìn)制數(shù),在 Python 中由十進(jìn)制實例表示。 |
DurationField | 用于存儲時間段的字段。 |
EmailField | 它是一個字符字段,用于檢查值是否為有效的電子郵件地址。 |
FileField | 它是一個文件上傳字段。 |
FloatField | 它是一個浮點數(shù),在 Python 中由浮點實例表示。 |
ImageField | 它從 FileField 繼承所有屬性和方法,但也驗證上傳的對象是否為有效圖像。 |
IntegerField | 它是一個整數(shù)字段。從 -2147483648 到 2147483647 的值在 Django 支持的所有數(shù)據(jù)庫中都是安全的。 |
GenericIPAddressfield | 字符串格式的 IPv4 或 IPv6 地址(例如 192.0.2.30 或 2a02:42fe::4)。 |
NullBooleanField | 就像布爾字段一樣,但允許 NULL 作為選項之一。 |
PositiveIntegerField | 類似于整數(shù)域,但必須為正數(shù)或零 (0)。 |
PositiveSmallIntegerField | 就像正整數(shù)字段一樣,但只允許某個(依賴于數(shù)據(jù)庫的)點下的值。 |
SlugField | 鼻涕蟲是一個報紙術(shù)語。slug是某物的簡短標(biāo)簽,僅包含字母,數(shù)字,下劃線或連字符。它們通常用于網(wǎng)址。 |
SmallIntegerField | 它類似于整數(shù)字段,但只允許某個(依賴于數(shù)據(jù)庫的)點下的值。 |
TextField | 一個大的文本字段。此字段的默認(rèn)表單構(gòu)件是文本區(qū)域。 |
TimeField | 一個時間,在 Python 中由日期時間.time 實例表示。 |
URLField | 由網(wǎng)址驗證的網(wǎng)址的字符字段。 |
UUIDField | 用于存儲通用唯一標(biāo)識符的字段。使用蟒蛇的 UUID 類。在 PostgreSQL 上使用時,它存儲在 uuid 數(shù)據(jù)類型中,否則存儲在字符(32) 中。 |
關(guān)系字段
Django還定義了一組表示關(guān)系的字段。
字段名稱 | 描述: |
---|---|
ForeignKey | 多對一的關(guān)系。需要兩個位置參數(shù):與模型相關(guān)的類和on_delete選項。 |
ManyToManyField | 多對多關(guān)系。需要一個位置參數(shù):與模型相關(guān)的類,其工作方式與 ForeignKey 完全相同,包括遞歸和惰性關(guān)系。 |
OneToOneField | 一對一的關(guān)系。從概念上講,這類似于具有 unique=True 的外來密鑰,但關(guān)系的“反向”端將直接返回單個對象。 |
字段選項
字段選項是為每個字段提供的參數(shù),用于應(yīng)用某些約束或?qū)⑻囟ㄌ卣髻x予特定字段。例如,將參數(shù) null = True 添加到 CharField 將使其能夠在關(guān)系數(shù)據(jù)庫中存儲該表的空值。
以下是字符字段可以使用的字段選項和屬性。
字段選項 | 描述: |
---|---|
Null | 如果為 True,Django 將在數(shù)據(jù)庫中將空值存儲為 NULL。默認(rèn)值為假。 |
Blank | 如果為 True,則允許該字段為空。默認(rèn)值為假。 |
db_column | 要用于此字段的數(shù)據(jù)庫列的名稱。如果沒有給出,Django將使用該字段的名稱。 |
Default | 字段的默認(rèn)值。這可以是值或可調(diào)用的對象。如果可調(diào)用,則每次創(chuàng)建新對象時都會調(diào)用它。 |
help_text | 要與表單小部件一起顯示的額外“幫助”文本。即使您的字段未在表單上使用,它對于文檔也很有用。 |
primary_key | 如果為 True,則此字段是模型的主鍵。 |
editable | 如果為 False,則該字段將不會顯示在管理員或任何其他模型窗體中。在模型驗證期間也會跳過它們。默認(rèn)值為 True。 |
error_messages | error_messages參數(shù)允許您覆蓋字段將引發(fā)的默認(rèn)消息。傳入包含與要覆蓋的錯誤消息匹配的鍵的字典。 |
help_text | 要與表單小部件一起顯示的額外“幫助”文本。即使您的字段未在表單上使用,它對于文檔也很有用。 |
verbose_name | 字段的人類可讀名稱。如果未給出詳細(xì)名稱,Django 將使用字段的屬性名稱自動創(chuàng)建它,并將下劃線轉(zhuǎn)換為空格。 |
validators | 要為此字段運(yùn)行的驗證程序列表。 |
Unique | 如果為 True,則此字段在整個表中必須是唯一的。 |
到此這篇關(guān)于Python Django教程之模型中字段驗證詳解的文章就介紹到這了,更多相關(guān)Django字段驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python實現(xiàn)with結(jié)構(gòu)的@contextmanager方法詳解
這篇文章主要介紹了使用Python實現(xiàn)with結(jié)構(gòu)的@contextmanager方法詳解,這個結(jié)構(gòu)的好處,一個是簡潔,一個是當(dāng)我們對文件操作的邏輯很長的時候,不會因為忘了關(guān)閉文件而造成不必要的錯誤,需要的朋友可以參考下2023-07-07Python小程序編程實現(xiàn)一鍵自動整理文件解壓文件
這篇文章主要為大家介紹了Python小程序編程實現(xiàn)一鍵自動整理文件解壓文件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Python使用itertools模塊實現(xiàn)排列組合功能示例
這篇文章主要介紹了Python使用itertools模塊實現(xiàn)排列組合功能,涉及Python基于itertools模塊product、permutations與combinations_with_replacement方法進(jìn)行排列、組合等相關(guān)操作實現(xiàn)技巧,需要的朋友可以參考下2018-07-07Python通過WHL文件實現(xiàn)離線安裝的操作詳解
在Python開發(fā)中,我們經(jīng)常需要安裝第三方庫來擴(kuò)展Python的功能,通常情況下,我們可以通過pip命令在線安裝這些庫,此時,WHL(Wheel)文件成為了非常實用的解決方案,本教程將結(jié)合實際案例,詳細(xì)介紹如何通過WHL文件在Python中進(jìn)行離線安裝,需要的朋友可以參考下2024-08-08Python基礎(chǔ)知識學(xué)習(xí)之類的繼承
今天帶大家學(xué)習(xí)Python的基礎(chǔ)知識,文中對python類的繼承作了非常詳細(xì)的介紹,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05