【Django的Form组件】

Django的Form主要具有一下几大功能:

  • 生成HTML标签
  • 验证用户数据(显示错误信息)
  • HTML Form提交保留上次提交数据
  • 初始化页面显示内容

Form类的使用:

1、定义规则:

1
2
3
4
from django.forms import Form
from django.forms import fields
class xxx(Form):
    xx = fields.CharField(max_lenghth=,min_lenghth=,required=True,error_message=)

2、使用:

1
2
3
4
5
6
7
8
9
10
11
12
obj = xxx(request.POST)
# 是否校验成功
v = obj.is_valid()
    # html标签name属性 = Form类字段名
 
obj.is_valid()验证通过返回True,失败则返回False
 
# 所有错误信息
obj.errors
 
# 正确信息
obj.cleaned_data

登录和注册案例:

from django.shortcuts import render,HttpResponse,redirect

from django.forms import Form
from django.forms import fields
class LoginForm(Form):
    # 正则验证: 不能为空,6-18
    username = fields.CharField(
        max_length=18,
        min_length=6,
        required=True,
        error_messages={
            'required': '用户名不能为空',
            'min_length': '太短了',
            'max_length': '太长了',
        }
    )
    # 正则验证: 不能为空,16+
    password = fields.CharField(min_length=16,required=True)
    # email = fields.EmailField()
    # email = fields.GenericIPAddressField()
    # email = fields.IntegerField()


def login(request):
    if request.method == "GET":
        return render(request,'login.html')
    else:
       obj = LoginForm(request.POST)
       if obj.is_valid():
           # 用户输入格式正确
           print(obj.cleaned_data) # 字典类型
           return redirect('http://www.baidu.com')
       else:
           # 用户输入格式错误
           return render(request,'login.html',{'obj':obj})
views.py

相关文章: