作用:
- 渲染表单模板。
- 表单验证数据是否合法。
django中表单使用流程:
- 像模版一样。首先我们要先定义一个表单类,继承自django.forms.Form。
#新建一个forms.py.from django import forms class MessageBoarForm(forms.Form): title = forms.CharField(max_length=100,min_length=2,label='标题',error_messages={'min_lenth':'至少要写一个字符'}) content = forms.CharField(widget=forms.Textarea,label='内容') email = forms.EmailField(label='邮箱') reply = forms.BooleanField(required=False,label='是否回复') #label时定义网页上显示的内容,error_messages是定义如果输入错误后提示的内容
- 接下来就是在view视图里,根据get或post请求操作。
from django.shortcuts import render from django.shortcuts import HttpResponse from django.views.generic import View from .forms import MessageBoarForm from django.forms.utils import ErrorDict # Create your views here. class IndexView(View): def get(self,request): form = MessageBoarForm() #获取表单内容 需引入 return render(request,'index.html',context={ 'form':form }) def post(self,request): form = MessageBoarForm(request.POST) if form.is_valid(): #用post方法在网页上输入内容 提交时 title = form.cleaned_data.get('title') #clean_data用来获取验证成功后(合法)的 content= form.cleaned_data.get('content') email = form.cleaned_data.get('email') reply = form.cleaned_data.get('reply') print('$'*30) print(title) print(content) print(email) print(reply) return HttpResponse('success') else: #如果不符合定义的需求,即输入不合法时 print(form.errors.get_json_data()) #获取输入时所显示的 return HttpResponse('failed')
- 在使用GET请求时,我们传递了一个form模板,那么以后就可以使用form来生成一个表单的html代码,使用post请求时,我们根据前端上传来的数据,构建了一个表单,来验证是否合法,如果通过我们可以用clean_data来获取相应的数据。
<form action="" method="post"> <table> # table用来美化模板 #} {{ form.as_table }} {# form表单里所定义的内容 #} <tr> <td></td> <td><input type="submit" value="提交"></td> </tr> </table> </form>
来源:https://www.cnblogs.com/nihao2/p/12268574.html