Django Forms 表单

环境 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里指定下路由
结果

 

猜你喜欢

转载自www.cnblogs.com/wangruwei/p/9134530.html