Django中 form表單的使用

2021-06-29 03:05:34 字數 2432 閱讀 6620

from django import forms

第一步:首先在models.py中定義乙個表單模型

class remarkform(forms.form):

subject = forms.charfield(max_length=100 ,label=

mail = forms.emailfield(label=

'電子郵件')

topic = forms.choicefield(choices=topic_choices,label=

'選擇評分')  

message = forms.charfield(label=

cc_myself = forms.booleanfield(required=

false ,label=

'訂閱該貼')

那個topic中的choices需要在models.py中定義乙個陣列.

這樣,之後在html顯示的表單就採用這個模型的資料了。

另外還有一種定義表單模型的方式,那就是直接繼承另乙個models。如果我們在models裡設計資料庫時,已經設計好了乙個類(就是資料庫的表)之後想復用這個類的資訊來作為表單的模型,那麼很簡單,同樣是在models中的乙個類

class advertisement(models.model): 

#訂單編號

orderid    =     models.foreignkey(orderinfo)

#//廣告標題#

title    =    models.charfield(max_length = 36) 

#//廣告內容#

content    =    models.charfield(max_length = 600)

注意,他的型別是models.model,是做資料庫orm用的。

然後怎麼關聯呢?

需要匯入乙個新的類 (modelform)

from django.forms import modelform

class contactform(modelform):

class meta:

model = advertisement

fields = (

'title', 'customerid')

這裡的advertisement就是之前那個orm的模型。

第二步:ok,繼續我們的表單,下一步需要做什麼呢?開始在views.py裡寫對表單的呼叫吧.

def remark(request):

if request.method == 

'post': # 如果表單被提交

form = contactform(request.post) # 獲取post表單資料

if form.is_valid(): # 驗證表單

'/') # 跳轉

else:

form = contactform() #獲得表單物件

return render_to_response(

'message.html', )

整個**很簡單,我就不過多的解釋了。

第三步:我們知道django裡任何訪問都是通過urls.py來管理的。所以下面我們需要配置乙個路徑。

(r '^message', 'iring.views.remark'),

第四步:最後應該是建立乙個模板的時候了,因為我們最終是輸出到html上的.注意views的remark函式最後一行

return render_to_response(

'message.html', )

就是講當前的表單物件輸出到message.html裡,自動生成乙個表單。

所以,先構建乙個html.

這個html模板很簡單,除去不必要的css,我只給出核心部分好啦。

<

form

action

="/message/"

method

="post"

>

<

divclass

>

}:} 

}

div>

<

divclass

>

<

p>

<

input

type

="submit"

value

/>

p>

div>

form

>

用於對表單物件裡的元素進行遍歷,然後通過}} 

}這三個標籤來輸出,注意}預設情況下是不會輸出的,只有當驗證表單正確性時才會輸出內容。

最終我們通過

http://youdjangourl/message來訪問這個例子

Django中的Form表單驗證

前端有若干個input輸入框,將使用者輸入內容,以字典傳遞給後端。後端預先存在乙個form表單驗證的基類,封裝了乙個檢測使用者輸入是否全部通過的方法。該方法會先定義好錯誤資訊的字典,並會遍歷類的所有屬性 對應前端待驗證的輸入域 呼叫各自的驗證方法,將錯誤資訊 兩類,必要與否以及格式正確與否 存入字典...

django學習 Form表單

在驗證某個欄位的時候,可以傳遞乙個validators引數用來指定驗證器,對資料進行進一步的過濾。驗證器有很多,但是很多驗證器我們其實已經通過這個field或者一些引數就可以指定了。比如emailvalidator,我們可以通過emailfield來指定,比如maxvaluevalidator,我們...

Django的form表單和ajax

在web開發中,表單提交是乙個很常見的功能,在django中,使用form表單提交較為簡單,需要注意在表單中新增,如果不想這樣做,也可以在對應的view方法中新增裝飾器 csrf exempt,強制不使用csrf認證。如果是ajax提交表單,則相對複雜一些,在ajax提交時,除了提交你的表單內容資料...