django-form组件

  • 什么是django表单:
    • django中的表单不是html中的那个表单,这里是指django有一个组件名叫表单
    • 它可以通过配置去验证数据的合法性
    • 同样也可以通过配置生成HTML代码.
  • 使用表单:
    • 创建一个`forms.py`的文件,放在指定的app当中,然后在里面写表单.
    • 表单是通过类实现的,继承自`forms.Form`,然后在里面定义要验证的字段.

form类表单的name必须对应HTML表单的name值

from django import forms


class LoginForm(forms.Form):
   # username, password对应HTML表单的name值,否则匹配不到 username
= forms.CharField(label="用户名", max_length=20, min_length=5) password = forms.CharField(label="密码", max_length=20, min_length=5)

form组件取HTML表单传来的值:

form = LoginForm(request.POST)

if form.is_valid: # 必须通过is_valid验证,并且值符合fLoginForm要求时,才能取出值

  data = form.cleaned_data

class Register(View):
    """注册"""
    def get(self, request):
        form = LoginForm()
        return render(request, "register.html", locals())

    def post(self, request):

        forms = LoginForm(request.POST) # HTML代码 可以返回生成页面
        print forms.is_bound # 验证是否有数据包括''空字符串
        if forms.is_valid(): # 验证数要求据是否符合form的要求,返回bool  valid有效的
            # forms.cleaned_data 必须在is_valid下q且为True时使用
            data = forms.cleaned_data # dict类型   cleaned_data数据清洗
            username = data['username']
            password = data['password']
        return render(request, 'register.html', locals())
原文地址:https://www.cnblogs.com/tangpg/p/9022196.html