当前位置:Gxlcms >
数据库问题 >
[oldboy-django][2深入django]初始Form组件
[oldboy-django][2深入django]初始Form组件
时间:2021-07-01 10:21:17
帮助过:44人阅读
Form验证(初始Form组件验证)
-
问题:
-
无法记住上次提交的内容,页面刷新数据消失
-
重复进行提交数据的校验(数据是否为空,长度大小等等)
-
解决方法:django Form组件
-
定义规则(数据的格式,字段必须和表单上name属性一致)
class LoginForm(Form):
实例化对象obj =
LoginForm(request.POST)
-
数据检验
obj.is_valid()
-
提供详细错误信息(可以自定制错误提示)
--
自定制错误信息,在类定义的时候通过error_messages参数
obj.errors
-
提供符合规则的信息(类型是字典,数据库orm操作支持类型是字典操作)
obj.cleaned_data
-
Form实例:
a.定义规则
from django.forms
import Form, fields
class LoginForm(Form):
# 定义规则,fields是正则验证
# usernma和password必须和前端模板Form里面input的name一致
username = fields.CharField(required=True, max_length=16, min_length=6
,
error_messages=
{
‘required‘:
‘不能为空‘,
‘max_length‘:
‘长度必须少于16‘,
‘min_length‘:
‘长度必须大于6‘
})
password = fields.CharField(required=True, min_length=8
,
error_messages=
{
‘required‘:
‘不能为空‘,
‘min_length‘:
‘长度必须大于8‘
})
b.使用
def login(request):
if request.method ==
‘GET‘:
return render(request,
‘login.html‘)
else:
obj =
LoginForm(request.POST)
# 检验提交数据是否符合规则
if obj.is_valid():
print(obj.cleaned_data)
# obj.cleaned_data是一个字典,form表单提交的数据
#{‘password‘: ‘aaaaaaaaaa‘, ‘username‘: ‘alexadfdda‘}
return redirect(
‘http://www.baidu.com‘)
else:
return render(request,
‘login.html‘, {
‘error‘: obj.errors})
# 作业(登录,注册)最终版
-
保留上次输入的值
- 用户数据格式的验证
View Code
[oldboy-django][2深入django]初始Form组件
标签:max 用户 .com form表单 aaaaa int print use article