91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django Form和ModelForm組件

發布時間:2020-07-12 20:03:58 來源:網絡 閱讀:336 作者:Python熱愛者 欄目:編程語言

Form介紹?

我們之前在HTML頁面中利用form表單向后端提交數據時,都會寫一些獲取用戶輸入的標簽并且用form標簽把它們包起來。

與此同時我們在好多場景下都需要對用戶的輸入做校驗,比如校驗用戶是否輸入,輸入的長度和格式等正不正確。如果用戶輸入的內容有錯誤就需要在頁面上相應的位置顯示對應的錯誤信息.。

Django form組件就實現了上面所述的功能。

總結一下,其實form組件的主要功能如下:

生成頁面可用的HTML標簽

對用戶提交的數據進行校驗

保留上次輸入內容

普通方式手寫注冊功能

views.py


Django Form和ModelForm組件

login.html


Django Form和ModelForm組件

使用form組件實現注冊功能

views.py

先定義好一個RegForm類:


Django Form和ModelForm組件

再寫一個視圖函數:


Django Form和ModelForm組件

login2.html


Django Form和ModelForm組件

看網頁效果發現 也驗證了form的功能:

?前端頁面是form類的對象生成的? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -->生成HTML標簽功能

?當用戶名和密碼輸入為空或輸錯之后 頁面都會提示? ? ? ? -->用戶提交校驗功能

?當用戶輸錯之后 再次輸入 上次的內容還保留在input框? ?-->保留上次輸入內容

Form那些事兒

常用字段與插件

創建Form類時,主要涉及到 【字段】 和 【插件】,字段用于對用戶請求數據的驗證,插件用于自動生成HTML;

initial

初始值,input框里面的初始值


Django Form和ModelForm組件

error_messages

重寫錯誤信息。


Django Form和ModelForm組件

password


Django Form和ModelForm組件

radioSelect

單radio值為字符串


Django Form和ModelForm組件

單選Select


Django Form和ModelForm組件

多選Select


Django Form和ModelForm組件

單選checkbox


Django Form和ModelForm組件

多選checkbox


Django Form和ModelForm組件

choice字段注意事項

在使用選擇標簽時,需要注意choices的選項可以配置從數據庫中獲取,但是由于是靜態字段?獲取的值無法實時更新,需要重寫構造方法從而實現choice實時更新。

方式一:


Django Form和ModelForm組件

方式二:


Django Form和ModelForm組件

Django Form所有內置字段


Django Form和ModelForm組件

字段校驗

RegexValidator驗證器


Django Form和ModelForm組件

自定義驗證函數


Django Form和ModelForm組件

Hook方法

除了上面兩種方式,我們還可以在Form類中定義鉤子函數,來實現自定義的驗證功能。

局部鉤子

我們在Fom類中定義 clean_字段名() 方法,就能夠實現對特定字段進行校驗。

舉個例子:


Django Form和ModelForm組件

全局鉤子

我們在Fom類中定義 clean() 方法,就能夠實現對字段進行全局校驗。


Django Form和ModelForm組件

補充進階

應用Bootstrap樣式


Django Form和ModelForm組件

批量添加樣式

可通過重寫form類的init方法來實現。


Django Form和ModelForm組件

ModelForm

通常在Django項目中,我們編寫的大部分都是與Django 的模型緊密映射的表單。 舉個例子,你也許會有個Book 模型,并且你還想創建一個form表單用來添加和編輯書籍信息到這個模型中。 在這種情況下,在form表單中定義字段將是冗余的,因為我們已經在模型中定義了那些字段。

基于這個原因,Django 提供一個輔助類來讓我們可以從Django 的模型創建Form,這就是ModelForm。

modelForm定義

form與model的終極結合。


Django Form和ModelForm組件

class Meta下常用參數:


Django Form和ModelForm組件

ModelForm的驗證

與普通的Form表單驗證類型類似,ModelForm表單的驗證在調用is_valid() 或訪問errors 屬性時隱式調用。

我們可以像使用Form類一樣自定義局部鉤子方法和全局鉤子方法來實現自定義的校驗規則。

如果我們不重寫具體字段并設置validators屬性的化,ModelForm是按照模型中字段的validators來校驗的。

save()方法

每個ModelForm還具有一個save()方法。 這個方法根據表單綁定的數據創建并保存數據庫對象。 ModelForm的子類可以接受現有的模型實例作為關鍵字參數instance;如果提供此功能,則save()將更新該實例。 如果沒有提供,save() 將創建模型的一個新實例:


Django Form和ModelForm組件


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庆阳市| 武安市| 长武县| 西乌| 绥德县| 昌邑市| 怀远县| 晋宁县| 田阳县| 苍梧县| 嘉荫县| 巴楚县| 南雄市| 城市| 永德县| 阿城市| 涞水县| 青神县| 南京市| 习水县| 石楼县| 会同县| 肃南| 古浪县| 吉林省| 郓城县| 潼关县| 湘潭市| 重庆市| 丹凤县| 陵水| 海原县| 固阳县| 饶河县| 富锦市| 淳安县| 宝坻区| 昌江| 安龙县| 冕宁县| 上林县|