1. 程式人生 > 實用技巧 >Django中的表單

Django中的表單

Django中的表單:

Django中的表單豐富了傳統的HTML語言中的表單。在Django中的表單,主要做以下兩件事:

  1. 渲染表單模板。
  2. 表單驗證資料是否合法。

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),並且在後面我們還加上了一個提交按鈕。這樣就可以生成一個表單了