【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})