python Django学习(17)——Form组件验证
程序员文章站
2022-03-07 19:45:13
...
参考博客:Django之ModelForm组件.感谢大神!!
一.Form组件
view.py:
from django.forms import Form
from django import forms
from django.forms import widgets # widget是插件,可以用来定制样式
from django.forms import fields
class FM(Form):
# 字段本身只做验证
# 这里的字段名,必须跟html中的name一样,这样才能拿到数据
user = fields.CharField(
error_messages={'required':"用户名不能为空"}, # 定义错误信息
# widget=widgets.Textarea(attrs={'class':'c1'}), # 定义样式
label='用户名', # 定义label
initial='root', # 默认值
)
pwd = fields.CharField(
max_length=12,
min_length=6,
error_messages={'required': '密码不能为空.', 'min_length': '密码长度不能小于6', "max_length": '密码长度不能大于12'},
widget=widgets.PasswordInput, # 这里是设置成密码框,不加括号是因为不用自定义样式,要想自定义样式,还需要加括号
label='密码',
)
email = fields.EmailField(
error_messages={'required': "邮箱不能为空",'invalid':"邮箱格式错误"},
label='邮箱',
)
f = fields.FileField() # 就是input中的file
city1 = fields.ChoiceField( # 单选框
choices=[(0, '上海'), (1, '广州'), (2, '东莞')]
)
city2 = fields.MultipleChoiceField( # 多选框
choices=[(0, '上海'), (1, '广州'), (2, '东莞')]
)
def fm(request):
if request.method == "GET":
dic = {
"user": 'r1',
'pwd': '123123',
'email': 'sdfsd',
'city1': 2,
'city2': [1, 2]
}
obj = FM(initial=dic) # 设置默认初始值
return render(request,'fm.html',{'obj':obj})
elif request.method == "POST":
# 获取用户所有数据
# 每条数据请求验证
# 成功:获取所有的正确的信息
# 失败:显示错误信息
obj = FM(request.POST)
r1 = obj.is_valid() # 拿着数据去做验证
if r1:
# r1为True,则验证成功
print(obj.cleaned_data)
else:
print(obj.errors)
return render(request,'fm.html',{'obj':obj})
fm.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/app01/fm/" method="post">
{% csrf_token %}
<p>{{ obj.user.label }}{{ obj.user }}{{ obj.errors.user.0 }}</p>
<p>{{ obj.pwd.label }}{{ obj.pwd }}{{ obj.errors.pwd.0 }}</p>
<p>{{ obj.email.label }}{{ obj.email }}{{ obj.errors.email.0 }}</p>
<p>{{ obj.f }}{{ obj.errors.f.0 }}</p>
{{ obj.city1 }}
{{ obj.city2 }}
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
这样就能自动生成form表单了.
当然,Form组件还有很多其他的功能,这里就只是简单记录一下学习的内容,后续会持续进行更新.
写在最后
本文是个人的一些学习笔记,如有侵权,请及时联系我进行删除,谢谢大家.
上一篇: .NET Core中反解ObjectId
推荐阅读
-
Python3 之 Django Web框架Form组件(二)
-
备战秋招——记录自己学习的第六天(Django项目难点拆分——利用form定制实现用户验证)
-
Python中使用django form表单验证的方法
-
Django (四)用Form组件进行数据验证
-
django学习笔记---form组件验证,如何给form组件添加样式
-
Python中使用django form表单验证的方法
-
python Django学习(17)——Form组件验证
-
Django框架 Form组件2(生成标签,验证数据,其他)
-
django学习笔记---Django进行验证时form表单的error及error的几种前端展示