python-Django-表單驗證(二)-信息
來源: 騰訊云 2023-04-24 15:08:51
(資料圖片)
表單驗證器
表單驗證器是檢查整個表單數(shù)據(jù)是否符合特定要求的函數(shù)。表單驗證器通常用于檢查表單字段之間的關(guān)系或?qū)Ρ韱螖?shù)據(jù)進行全局驗證。我們可以通過在表單類中定義一個clean
方法來編寫表單驗證器。
例如,以下是一個表單類,它包含兩個密碼字段,并確保它們的值匹配:
from django import formsclass ContactForm(forms.Form): name = forms.CharField(label="Your Name", max_length=100) email = forms.EmailField(label="Your Email") message = forms.CharField(widget=forms.Textarea) def clean_message(self): message = self.cleaned_data.get("message") if len(message.strip()) < 5: raise forms.ValidationError("Message is too short.") return message
在這個示例中,我們定義了一個名為ContactForm
的表單,它包含三個字段:name
,email
和message
。name
和email
字段都是字符字段,而message
字段是一個多行文本字段。
我們還定義了一個名為clean_message
的表單驗證方法。在這個方法中,我們首先獲取表單的message
字段,并將其清除左右兩側(cè)的空格。然后,我們檢查該字段是否少于5個字符,如果是,我們將引發(fā)一個ValidationError
異常。否則,我們將返回清理后的message
字段。
在視圖中,我們可以通過以下方式處理提交的表單:
from django.shortcuts import renderfrom .forms import ContactFormdef contact(request): if request.method == "POST": form = ContactForm(request.POST) if form.is_valid(): # 處理表單數(shù)據(jù) name = form.cleaned_data["name"] email = form.cleaned_data["email"] message = form.cleaned_data["message"] # ... else: form = ContactForm() return render(request, "contact.html", {"form": form})
在這個示例中,我們首先檢查請求方法是否為POST。如果是,我們將實例化一個ContactForm
對象,并將請求數(shù)據(jù)傳遞給它。然后,我們檢查表單是否有效。如果有效,我們將使用cleaned_data
字典來獲取驗證通過的表單數(shù)據(jù),并進行進一步處理。否則,我們將返回一個帶有錯誤表單的ContactForm
對象。
在模板中,我們可以使用以下代碼來呈現(xiàn)表單:
在這個示例中,我們使用{{ form.as_p }}
模板標記來呈現(xiàn)表單。這將以段落形式呈現(xiàn)表單字段。我們還包含了一個名為csrf_token
的標記,它將在處理POST請求時使用,以防止跨站點請求偽造攻擊。
標簽:
猜你喜歡

python-Django-表單驗證(二)-信息
2023-04-24 15:08:51

旅居美國的大熊貓“丫丫”將回國,身體狀況如何?
2023-04-24 15:10:58

微速訊:中國氣象服務(wù)協(xié)會組織中國企業(yè)亮相國際舞臺
2023-04-24 15:15:20

氣象領(lǐng)域“公私伙伴關(guān)系”的中國實踐受到國際關(guān)注
2023-04-24 15:11:06

研報掘金|東方財富:珀萊雅毛利再上新臺階大單品強勢升級迭代維持“買入”評級-世界熱消息
2023-04-24 15:12:15

山西省人民政府辦公廳關(guān)于在全省推行政府法律顧問制度的意見
2023-04-24 14:48:20

要聞:山西省人民政府辦公廳關(guān)于發(fā)展商貿(mào)流通擴大消費的若干意見
2023-04-24 14:44:23

全球即時看!山西省人民政府辦公廳關(guān)于印發(fā)山西省大面積停電事件應(yīng)急預(yù)案的通知
2023-04-24 14:47:09

謎塔和孩子們奔向塔底收藏家牌組怎么解鎖 實時焦點
2023-04-24 14:38:49

中建壹品聯(lián)合體18.82億競得北京大興瀛海鎮(zhèn)一宗集體產(chǎn)業(yè)用地_全球微資訊
2023-04-24 14:38:28

廣東:一季度實現(xiàn)地區(qū)生產(chǎn)總值30178.23億元,同比增長4.0%
2023-04-24 14:36:27

一汽豐田新款RAV4榮放將于4月27日上市 造型升級_當前簡訊
2023-04-24 14:20:17
亞馬遜2023最新選爆品詳細教程,教你選出差異化!
2023-04-24 14:45:42

環(huán)球觀察:施秉:樂享閱讀 迎接“世界讀書日”
2023-04-24 14:28:56

重慶工程學(xué)院如何口碑怎么樣地址_天天熱文
2023-04-24 14:06:09

化學(xué)特長生如何介紹成為該報什么專業(yè)
2023-04-24 14:07:35

每日視點!如何查找高考體檢結(jié)果看色弱必過技巧
2023-04-24 14:07:46

世界滾動:《海綿寶寶》主角被“擬人化”,蟹老板秒變小鮮肉,派大星超可愛
2023-04-24 13:56:10

Win10為什么360安全衛(wèi)士打不開?原因分析及解決方法
2023-04-24 14:07:21

造夢西游3虎丸幾級進化?造夢西游3虎丸養(yǎng)成教程
2023-04-24 14:06:59

網(wǎng)頁三劍客軟件是由哪些組成?網(wǎng)頁三劍客正式版序列號
2023-04-24 14:06:36

北京銀行信用卡可以延遲幾天還款?信用卡還款大忌有哪些要注意?
2023-04-24 13:52:54

資訊推薦:當日快訊:人社部:培育高水平獵頭機構(gòu),建立探索人力資源市場信用管理等新型監(jiān)管模式
2023-04-24 13:52:36

每日熱門:當日快訊:聯(lián)化科技:英國子公司產(chǎn)線升級改造工作已基本完成_當前看點
2023-04-24 13:42:52

DVD解碼器如何安裝?DVD解碼器具體安裝步驟介紹
2023-04-24 14:05:45