django forms组件

一、渲染

  1. 导包

    # 导出 forms 包
    from django import forms  
    # 导出 forms 的部件 
    from django.forms import widgets
  2. 设置表单字段以及类型

    class UserForm(forms.Form):
      name = forms.CharField(
        max_length=32,
        min_length=4,
        widget=widgets.TextInput(attrs={"class":"xxx"})
      )
    
      age = forms.IntegerField(
        label="显示标签"
      )
  3. 前端渲染页面

    {{ form.name }}
    {{form.age}}

二、校验

  1. is_valid()表示执行校验

  2. cleaned_data 已经通过校验后的数据

  3. errors 表示没有通过校验的信息

    class UserView(View):
    
        def get(self,request):
            return render(request,'index.html')
    
    
        def post(self,request):
            obj = DemoForm(request.POST)
            if obj.is_valid(): # 校验前端提交过来的数据是否通过校验
                print('success')
            else:
                print('error')
            print(obj.cleaned_data) # 返回校验后的数据,类型为字典
            print(obj.errors) # 没有通过校验的数据
            return HttpResponse('ok')