<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • DjangoForm和ModelForm組件

            Form介紹?

            創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司是一家服務(wù)多年做網(wǎng)站建設(shè)策劃設(shè)計(jì)制作的公司,為廣大用戶提供了網(wǎng)站制作、成都網(wǎng)站制作,成都網(wǎng)站設(shè)計(jì),1元廣告,成都做網(wǎng)站選創(chuàng)新互聯(lián)公司,貼合企業(yè)需求,高性價(jià)比,滿足客戶不同層次的需求一站式服務(wù)歡迎致電。

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

            與此同時(shí)我們?cè)诤枚鄨?chǎng)景下都需要對(duì)用戶的輸入做校驗(yàn),比如校驗(yàn)用戶是否輸入,輸入的長(zhǎng)度和格式等正不正確。如果用戶輸入的內(nèi)容有錯(cuò)誤就需要在頁面上相應(yīng)的位置顯示對(duì)應(yīng)的錯(cuò)誤信息.。

            Django form組件就實(shí)現(xiàn)了上面所述的功能。

            總結(jié)一下,其實(shí)form組件的主要功能如下:

            生成頁面可用的HTML標(biāo)簽

            對(duì)用戶提交的數(shù)據(jù)進(jìn)行校驗(yàn)

            保留上次輸入內(nèi)容

            普通方式手寫注冊(cè)功能

            views.py

            Django Form和ModelForm組件

            login.html

            Django Form和ModelForm組件

            使用form組件實(shí)現(xiàn)注冊(cè)功能

            views.py

            先定義好一個(gè)RegForm類:

            Django Form和ModelForm組件

            再寫一個(gè)視圖函數(shù):

            Django Form和ModelForm組件

            login2.html

            Django Form和ModelForm組件

            看網(wǎng)頁效果發(fā)現(xiàn) 也驗(yàn)證了form的功能:

            ?前端頁面是form類的對(duì)象生成的? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -->生成HTML標(biāo)簽功能

            ?當(dāng)用戶名和密碼輸入為空或輸錯(cuò)之后 頁面都會(huì)提示? ? ? ? -->用戶提交校驗(yàn)功能

            ?當(dāng)用戶輸錯(cuò)之后 再次輸入 上次的內(nèi)容還保留在input框? ?-->保留上次輸入內(nèi)容

            Form那些事兒

            常用字段與插件

            創(chuàng)建Form類時(shí),主要涉及到 【字段】 和 【插件】,字段用于對(duì)用戶請(qǐng)求數(shù)據(jù)的驗(yàn)證,插件用于自動(dòng)生成HTML;

            initial

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

            Django Form和ModelForm組件

            error_messages

            重寫錯(cuò)誤信息。

            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字段注意事項(xiàng)

            在使用選擇標(biāo)簽時(shí),需要注意choices的選項(xiàng)可以配置從數(shù)據(jù)庫(kù)中獲取,但是由于是靜態(tài)字段?獲取的值無法實(shí)時(shí)更新,需要重寫構(gòu)造方法從而實(shí)現(xiàn)choice實(shí)時(shí)更新。

            方式一:

            Django Form和ModelForm組件

            方式二:

            Django Form和ModelForm組件

            Django Form所有內(nèi)置字段

            Django Form和ModelForm組件

            字段校驗(yàn)

            RegexValidator驗(yàn)證器

            Django Form和ModelForm組件

            自定義驗(yàn)證函數(shù)

            Django Form和ModelForm組件

            Hook方法

            除了上面兩種方式,我們還可以在Form類中定義鉤子函數(shù),來實(shí)現(xiàn)自定義的驗(yàn)證功能。

            局部鉤子

            我們?cè)贔om類中定義 clean_字段名() 方法,就能夠?qū)崿F(xiàn)對(duì)特定字段進(jìn)行校驗(yàn)。

            舉個(gè)例子:

            Django Form和ModelForm組件

            全局鉤子

            我們?cè)贔om類中定義 clean() 方法,就能夠?qū)崿F(xiàn)對(duì)字段進(jìn)行全局校驗(yàn)。

            Django Form和ModelForm組件

            補(bǔ)充進(jìn)階

            應(yīng)用Bootstrap樣式

            Django Form和ModelForm組件

            批量添加樣式

            可通過重寫form類的init方法來實(shí)現(xiàn)。

            Django Form和ModelForm組件

            ModelForm

            通常在Django項(xiàng)目中,我們編寫的大部分都是與Django 的模型緊密映射的表單。 舉個(gè)例子,你也許會(huì)有個(gè)Book 模型,并且你還想創(chuàng)建一個(gè)form表單用來添加和編輯書籍信息到這個(gè)模型中。 在這種情況下,在form表單中定義字段將是冗余的,因?yàn)槲覀円呀?jīng)在模型中定義了那些字段。

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

            modelForm定義

            form與model的終極結(jié)合。

            Django Form和ModelForm組件

            class Meta下常用參數(shù):

            Django Form和ModelForm組件

            ModelForm的驗(yàn)證

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

            我們可以像使用Form類一樣自定義局部鉤子方法和全局鉤子方法來實(shí)現(xiàn)自定義的校驗(yàn)規(guī)則。

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

            save()方法

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

            Django Form和ModelForm組件

            本文標(biāo)題:DjangoForm和ModelForm組件
            URL標(biāo)題:http://www.jbt999.com/article14/ijjige.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站排名、品牌網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

            網(wǎng)站優(yōu)化排名

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 国内精品国产三级国产99 | 操逼大片。 | 日韩在线黄色大片 | 来操逼网| 中文字幕欧美日韩VA免费视频 |