Form组件
- 对用户请求的验证
- AJax
- Form
- 生成HTML代码
-
a. 创建一个类Fr
b. 类中创建字段(包含正则表达式)
c. GET
obj = Fr()
obj.user = > 自动生成HTML
d. POST
obj = Fr(request.POST)
if obj.is_valid():
obj.cleaned_data
else:
obj.errors
return .... obj
from django.shortcuts import render,HttpResponse,redirect
from django import forms
from django.forms import fields
#创建类from验证
class F1Form(forms.Form):
user=fields.CharField(
max_length=18,min_length=6,required=True,
error_messages={'required':'用户名不能为空','max_length':'太长了','min_length':'太短了'}) #不能为空
pwd=fields.CharField(min_length=8,required=True,
error_messages={'required': '密码不能为空', 'min_length': '太短了'} )
age=fields.IntegerField(required=True,
error_messages={'required': '年龄不能为空', 'invalid': '必须为数字'})
email=fields.EmailField(required=True,min_length=8,
error_messages = {'required': '邮箱不能为空', 'invalid': '邮箱格式错误'})
def f1(request):
if request.method=='GET':
obj=F1Form()
return render(request,'f1.html',{'obj':obj})
else:
obj=F1Form(request.POST) #取数据验证
if obj.is_valid(): #是否验证成功
#用户提交的数据
print('成功',obj.cleaned_data) #拿到字典
return redirect('http://www.xiaohuar.com')
else:
print('失败',obj.errors) #错误信息
return render(request, 'f1.html',{"obj":obj})
html文件
f1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form id="fm" action="/f1" method="POST">
//{{ obj.user }} 生成HTML对象
<p>用户名:{{ obj.user }}{{ obj.errors.user.0 }}</p>
<p>密 码:{{ obj.pwd }}{{ obj.errors.pwd.0 }}</p>
<p>年 龄:{{ obj.age }}{{ obj.errors.age.0 }}</p>
<p>邮箱地址:{{ obj.email }}{{ obj.errors.email.0 }}</p>
<input type="submit" value="提交" />
</form>
</body>
</html>