环境 python 3.7
服务端 views.py
from django import forms # 引入 froms 模块
from django.forms import widgets # 引入模板插件 用于自定义前端样式(html,css)
from django.forms import fields #引入定义模块的字段
class FM(forms.Form): #定义一个类
#此处的 user 和 pwd 和 email 必须和模板上传到服务端的name值一样
user = fields.CharField(error_messages={'required':'用户名不能为空'}, #error_messages定义错误信息返回值
widget=widgets.Textarea(attrs={'class':'c1'}) #在 服务端定义客户端的样式 可以在html里写c1的css
)
pwd = fields.CharField(error_messages={'required':'密码不能为空','max_length':'最大长度不能大于12','min_length':'最小长度不能小于6'},
max_length=12,
min_length=6)
email = fields.EmailField(error_messages={'required':'邮箱不能为空','invalid':'邮箱格式错误'})
def test(request):
if request.method == "GET":
obj = FM()
return render(request,'a.html',{ 'obj':obj })
elif request.method == 'POST':
# print(request.method)
obj = FM(request.POST)
r1 = obj.is_valid()
print(r1) #如果有值为True
if r1:
print(obj.cleaned_data)
else:
print(obj.errors)
pass
return render(request,'a.html',{'obj':obj})
客户端 a.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<style>
.c1{
border: red solid 1px;
color: #1ab1ff;
width: 165px;
height: 17px;
}
</style>
<body>
<form action="/app01/test/" method="post">
{% csrf_token %}
<p>{{ obj.user }}{{ obj.errors.user.0 }} </p>
<p>{{ obj.pwd }}{{ obj.errors.pwd.0 }}</p>
<p>{{ obj.email }}{{ obj.errors.email.0 }}</p>
<input type="submit" value="提交">
</body>
</html>
在url里指定下路由
结果