当前位置: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   

人气教程排行