Pycharm開發(fā)Django項目HTML中的表單
表單:
HTML中的表單:
單純從前端的html來說,表單是用來提交數(shù)據(jù)給服務(wù)器的,不管后臺的服務(wù)器用的是Django還是PHP語言還是其他語言。只要把input標(biāo)簽放在form標(biāo)簽中,然后再添加一個提交按鈕,那么以后點擊提交按鈕,就可以將input標(biāo)簽中對應(yīng)的值提交給服務(wù)器了。
Django中的表單:
Django中的表單豐富了傳統(tǒng)的HTML語言中的表單。在Django中的表單,主要做以下兩件事:
渲染表單模板。
表單驗證數(shù)據(jù)是否合法。
Django中表單使用流程:
在講解Django表單的具體每部分的細節(jié)之前。我們首先先來看下整體的使用流程。這里以一個做一個留言板為例。首先我們在后臺服務(wù)器定義一個表單類,繼承自django.forms.Form。示例代碼如下:
# forms.py
class MessageBoardForm(forms.Form):
? ? title = forms.CharField(max_length=3,label='標(biāo)題',min_length=2,error_messages={"min_length":'標(biāo)題字符段不符合要求!'})
? ? content = forms.CharField(widget=forms.Textarea,label='內(nèi)容')
? ? email = forms.EmailField(label='郵箱')
? ? reply = forms.BooleanField(required=False,label='回復(fù)')
然后在視圖中,根據(jù)是GET還是POST請求來做相應(yīng)的操作。如果是GET請求,那么返回一個空的表單,如果是POST請求,那么將提交上來的數(shù)據(jù)進行校驗。示例代碼如下:
# views.py
class IndexView(View):
? ? def get(self,request):
? ? ? ? form = MessageBoardForm()
? ? ? ? return render(request,'index.html',{'form':form})
? ? def post(self,request):
? ? ? ? form = MessageBoardForm(request.POST)
? ? ? ? if form.is_valid():
?