1.views.py
from django.shortcuts import render,HttpResponse,redirect
from django import forms
from django.forms import fields
class F1Form(forms.Form):
#应该和form表单中的name对应
user = fields.CharField(
max_length=18,
min_length=6,
required=True,
error_messages={
'required':'用户名不能为空',
'max_length':'太长了',
'min_length':'太短了',
}
)
pwd = fields.CharField(
min_length=32,
required=True,
error_messages={
'required':'密码不能为空',
'min_length': '太短了',
}
)
age = fields.IntegerField(
required=True,
error_messages={
'required': '年龄不能为空',
'invalid': '必须为数字',
}
)
email = fields.EmailField(
required=True,
error_messages = {
'required': '邮箱不能为空',
'invalid': '邮箱格式错误',
}
)
# Create your views here.
def f1(req):
if req.method=="GET":
obj=F1Form()
return render(req,'f1.html',{'obj':obj})
else:
# u=req.POST.get('user')
# p=req.POST.get('pwd')
# a=req.POST.get('age')
# e=req.POST.get('email')
# print(u,p,a,e)
#return render(req, 'f1.html')
obj = F1Form(req.POST)
#判断是否验证成功
if obj.is_valid():
#用户提交的数据
print('验证成功',obj.cleaned_data)
return redirect('http://www.baidu.com')
else:
print('验证失败',obj.errors)
return render(req, 'f1.html',{'obj':obj})
复制代码
2.f1.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>f1</title>
</head>
<body>
<div>
</div>
<form id="fm" action="/f1/" method="post">
<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>
<p><input type="submit" value="提交"></p>
{# <input type="button" value="ajax提交" onclick="submitAjaxForm()">#}
</form>
<script src="/static/jquery-3.1.1.js"></script>
{#<script>#}
{# function submitAjaxForm() {#}
{# $.ajax({#}
{# url:'/f1/',#}
{# type:'POST',#}
{# data:$('#fm').serialize(),#}
{# success:function (arg) {#}
{# console.log(arg)#}
{# }#}
{# })#}
{# }#}
{#</script>#}
</body>
</html>
复制代码