首先HTML效果图:
HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册内容验证</title>
</head>
<body>
<form action="/register/" method="post" novalidate>
<p>username:{{ obj.username }}{{ obj.errors.username.0 }}</p>
<p>password:{{ obj.password }}{{ obj.errors.password.0 }}</p>
<p>age:{{ obj.age }}{{ obj.errors.age.0 }}</p>
<p>email:{{ obj.email }}{{ obj.errors.email.0 }}</p>
<p>address:{{ obj.address }}{{ obj.errors.address.0 }}</p>
<p>{{ obj.gender }}</p>
<p>{{ obj.users }}</p>
<p>{{ obj.myaddrs }}</p>
<p><input type="submit" value="提交"><input type="reset" value="重置"> </p>
</form>
</body>
</html>
后台Veiws代码:
from django.shortcuts import render,redirect
from django import forms
from django.forms import widgets
# Create your views here.
#创建Form验证类,继承forms.Form
class RegisterForm(forms.Form):
username = forms.CharField(max_length=32,min_length=12,required=True,error_messages={
"max_length":"长度必须为6~12",
"min_length":"长度必须为6~12",
"required":"用户名不能为空",
})
password = forms.CharField(required=True,error_messages={
"required":"密码不能为空!"
})
age = forms.IntegerField(required=True,error_messages={
"required": "密码不能为空!",
"invalid":"年龄必须为数字!"
})
email = forms.EmailField(required=True,error_messages={
"required": "邮箱不能为空!",
"invalid": "邮箱格式不正确!"
})
address = forms.CharField(
initial=2,
widget = widgets.Select(choices=((1,"北京"),(2,"上海"),(3,"深圳"),))
)
gender = forms.ChoiceField(
choices=((0,"男"),(1,"女")),
widget=widgets.RadioSelect,
initial=0
)
#多选select,值为列表
users = forms.MultipleChoiceField(
choices=((1,'上海'),(2,'北京'),(3,"深圳")),
initial=[2,],
#可以加属性
widget=widgets.SelectMultiple(attrs={"class":"ray"})
)
myaddrs = forms.MultipleChoiceField(
choices=((1, '上海'), (2, '北京'), (3, "深圳")),
initial=3,
widget=widgets.CheckboxSelectMultiple
)
def register(request):
if request.method=="GET":
obj = RegisterForm()
return render(request,"registervalid.html",{"obj":obj})
else:
#将表单值获取到 传入Form参数
obj = RegisterForm(request.POST)
if obj.is_valid():
print("验证成功!",obj.cleaned_data)
return redirect("Http://www.baidu.com")
else:
print("验证失败!",obj.errors)
return render(request,"registervalid.html",{"obj":obj})