1.首先定义一个模板(注意引入 from django import forms)
from django import forms
#定义模板
#min_length表示获取字符的最小长度,error_messages获取错误信息
class LoginForm(forms.Form):
user=forms.CharField(min_length=6,error_messages={"required":"用户名不能为空","min_length":"用户名长度不能小于6位"})
email=forms.EmailField(error_messages={"required":"邮箱不能为空",'invalid':"邮箱格式错误"})
2.定义函数调用
def login(request):
if request.method=='GET':
return render(request,'login.html')
elif request.method=='POST':
'''
#获取所有前端表单提交的数据
obj=LoginForm(request.POST)
#验证 触发验证
status=obj.is_valid()
#验证成功后的值
value=obj.clean()
#获取错误信息
error=obj.errors
print(value)
'''
obj=LoginForm(request.POST)
if obj.is_valid():#验证为真,获取正确信息(没有对数据库操作,可以自行操作)
value=obj.clean()
else:
error=obj.errors.as_json()#(获取错误信息,以json形式)
return render(request, 'login.html')
#####################代码示例############################
前端:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Form提交数据</h1>
<form method="post" action="/login.html">
<p>
<input type="text" name="user" placeholder="用户名">
</p>
<p>
<input type="text" name="email" placeholder="邮箱">
</p>
<p>
<input type="password" name="pwd" placeholder="密码">
</p>
<input type="submit" value="提交">
</form>
</body>
</html>
后台:
from django.shortcuts import render,redirect
from django import forms
# Create your views here.
#定义模板
class LoginForm(forms.Form):
user=forms.CharField(min_length=6,error_messages={"required":"用户名不能为空","min_length":"用户名长度不能小于6位"})
email=forms.EmailField(error_messages={"required":"邮箱不能为空",'invalid':"邮箱格式错误"})
def login(request):
if request.method=='GET':
return render(request,'login.html')
elif request.method=='POST':
'''
obj=LoginForm(request.POST)
#验证 触发
status=obj.is_valid()
#验证成功后的值
value=obj.clean()
#获取错误信息
error=obj.errors
print(value)
'''
obj=LoginForm(request.POST)
if obj.is_valid():
value=obj.clean()
else:
error=obj.errors.as_json()
return render(request, 'login.html')
注:*args与**kw区别
args:表示就是将实参中按照位置传值,多余的值都给args,且以元组的方式呈现
**kw:表示就是形参中按照关键字传值,多余的值都给kw,且以字典的方式呈现