中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

西平县| 马山县| 九江市| 平顺县| 武清区| 金寨县| 伊金霍洛旗| 安仁县| 岳西县| 文水县| 红河县| 孟州市| 铅山县| 白银市| 安新县| 招远市| 张家界市| 昔阳县| 焦作市| 星座| 祁门县| 临沧市| 桐庐县| 台山市| 九龙城区| 昌邑市| 靖远县| 隆子县| 扬中市| 合肥市| 玉龙| 和政县| 宣汉县| 城固县| 通江县| 宝清县| 新邵县| 喀喇沁旗| 海兴县| 合阳县| 许昌县|