Django中的表單
阿新 • • 發佈:2020-07-21
Django中的表單:
Django
中的表單豐富了傳統的HTML
語言中的表單。在Django
中的表單,主要做以下兩件事:
- 渲染表單模板。
- 表單驗證資料是否合法。
Django中表單使用流程:
在講解Django
表單的具體每部分的細節之前。我們首先先來看下整體的使用流程。這裡以一個做一個留言板為例。首先我們在後臺伺服器定義一個表單類,繼承自django.forms.Form
。示例程式碼如下:
# forms.py class MessageBoardForm(forms.Form): title = forms.CharField(max_length=3,label='標題',min_length=2,error_messages={"min_length":'標題字元段不符合要求!'}) content = forms.CharField(widget=forms.Textarea,label='內容') email = forms.EmailField(label='郵箱') reply = forms.BooleanField(required=False,label='回覆')
然後在檢視中,根據是GET
還是POST
請求來做相應的操作。如果是GET
請求,那麼返回一個空的表單,如果是POST
請求,那麼將提交上來的資料進行校驗。示例程式碼如下:
# 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(): title = form.cleaned_data.get('title') content = form.cleaned_data.get('content') email = form.cleaned_data.get('email') reply = form.cleaned_data.get('reply') return HttpResponse('success') else: print(form.errors) return HttpResponse('fail')
在使用GET
請求的時候,我們傳了一個form
給模板,那麼以後模板就可以使用form
來生成一個表單的html
程式碼。在使用POST
請求的時候,我們根據前端上傳上來的資料,構建一個新的表單,這個表單是用來驗證資料是否合法的,如果資料都驗證通過了,那麼我們可以通過cleaned_data
來獲取相應的資料。在模板中渲染表單的HTML
程式碼如下:
<form action="" method="post"> <table> <tr> <td></td> <td><input type="submit" value="提交"></td> </tr> </table> </form>
我們在最外面給了一個form
標籤,然後在裡面使用了table
標籤來進行美化,在使用form
物件渲染的時候,使用的是table
的方式,當然還可以使用ul
的方式(as_ul
),也可以使用p
標籤的方式(as_p
),並且在後面我們還加上了一個提交按鈕。這樣就可以生成一個表單了