新聞中心
我們已經(jīng)簡(jiǎn)單的描述過了HTML 表單,但是一個(gè)HTML??只是其所需的一部分。

創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司,提供網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
在網(wǎng)絡(luò)應(yīng)用的上下文中,“表單”可能指的是那個(gè)HTML??,或者指產(chǎn)生它的 Django ?Form?,或者指它提交時(shí)返回的結(jié)構(gòu)化數(shù)據(jù),或者指這些部分的端到端工作集合。
Django的 Form 類
Django表單系統(tǒng)的核心組件是 ?Form ?類。它與Django模型描述對(duì)象的邏輯結(jié)構(gòu)、行為以及它呈現(xiàn)給我們內(nèi)容的形式的方式大致相同, ?Form ?類描述一張表單并決定它如何工作及呈現(xiàn)。
類似于模型類的字段映射到數(shù)據(jù)庫(kù)字段的方式,表單類的字段會(huì)映射到HTML表單的 ?? 元素。 ?ModelForm ?通過 ?Form ?映射模型類的字段到HTML表單的 ?? 元素,Django admin就基于此。
表單字段本身也是類;他們管理表單數(shù)據(jù)并在提交表單時(shí)執(zhí)行驗(yàn)證。 ?DateField ?和 ?FileField ?處理的數(shù)據(jù)類型差別很大,所以必須用來(lái)處理不同的字段。
在瀏覽器中,表單字段以HTML控件(用戶界面的一個(gè)片段)的形式展現(xiàn)給我們。每個(gè)字段類型都有與之相匹配的 控件類 ,但必要時(shí)可以覆蓋。
實(shí)例化、處理和渲染表單
在Django中渲染一個(gè)對(duì)象的時(shí)候,我們通常:
- 在視圖中獲取它(例如從數(shù)據(jù)庫(kù)中取出)
- 將它傳遞給模板上下文
- 使用模板變量將它擴(kuò)展為HTML標(biāo)記
在模板中渲染表單幾乎與渲染任何其他類型的對(duì)象的一樣,但是存在一些關(guān)鍵性的差異。
如果模型實(shí)例不包含數(shù)據(jù),在模板中對(duì)它做任何處理幾乎沒什么用。但完全有理由用來(lái)渲染一張空表單——當(dāng)我們希望用戶來(lái)填充的時(shí)候就會(huì)這么做。
所以當(dāng)我們?cè)谝晥D中處理模型實(shí)例時(shí),我們一般從數(shù)據(jù)庫(kù)中獲取它。當(dāng)我們處理表單時(shí),我們一般在視圖中實(shí)例化它。
當(dāng)我們實(shí)例化表單時(shí),我們可以選擇讓它為空或者對(duì)它預(yù)先填充,例如使用:
- 來(lái)自已保存的模型實(shí)例的數(shù)據(jù)(例如在管理編輯表單的情況下)
- 我們從其他來(lái)源獲取的數(shù)據(jù)
- 從前面一個(gè)HTML 表單提交過來(lái)的數(shù)據(jù)
最后一種情況最有趣,因?yàn)檫@使得用戶不僅可以閱讀網(wǎng)站,而且還可以將信息發(fā)回給它。
分享標(biāo)題:創(chuàng)新互聯(lián)Django4.0教程:Django4.0使用表單-Django中的表單
標(biāo)題來(lái)源:http://www.dlmjj.cn/article/dppgoig.html


咨詢
建站咨詢
