上一篇:Django之model操作ORM目录篇 点击跳转
目录篇:Django之Form及ModelForm目录篇 点击跳转
下一篇:Django之Form验证初阶实战示例(验证篇二) 点击跳转
目录
分析前端提交数据后到后端的验证流程
1.前端对用户提交的数据进行验证(js验证)
a.错误信息的提示
b保留上次提交的数据(如:验证错误以后,用户输入的用户名是需要进行保留)
2.后端对用户提交的数据进行验证 (自定义验证,model自身验证,使用django的form验证,使用django的modelform验证)
a.错误信息的提示
b.保留上次提交的数据(如:验证错误以后,用户输入的用户名是需要进行保留)
问题1:具体验证什么?
如:用户输入长度限制、手机号输入不能空、输入格式问题、登录密码输入不能为空、最小长度、确认密码输入不一致啊、验证码不能为空 等等等........
问题2:为什么前端验证了后端还需要进行验证
a 表单验证作用:减少服务器压力
b 因为遇见懂技术的,把浏览器的js禁掉,前端的js验证自然就失效,如果后端没有验证就...
暂且撇开自定义验证分析三种验证的区别:
1.Model 强大的数据库操作,弱小的数据验证(model自带full_clean方法验证方法)
2.Form 强大的数据验证
3.ModelForm 强大的数据验证,适中的数据库操作(耦合度高)
一般情况我们使用Model+From验证:可扩展性
当然我们也可以使用MdelForm:节省操作时间,但是耦合度高,扩展性差,一般小程序使用
Django的Form具备几大功能
1.生成HTML标签
2.验证用户数据(显示错误信息)
3.HTML Form提交保留上次提交数据
4.初始化页面显示内容
Django的Form的验证流程
a. 用户提交数据的验证
1、创建模板(继承Django的froms.Form父类的子类: class LoginForm(formds.Form)...)
2、将前端提交的数据请求交给模板,(obj = LoginForm(request.POST))
get:返回给前端Form生成的标签进行应用,当然我们也可以不使用Form生成的标签
post:把提交的数据交给实例化form的对象,这样才可以进行验证
3、进行验证 obj.is_valid() (True代表验证通过,False代表验证不通过)
4、 clean3个钩子: (可用于定制操作,验证可能没有问题,但是保存数据到数据库就可能有问题,这个时候我们就可以进行定制操作)
5、取正确信息 obj.clean() or obj.cleaned_data (对正确的数据进行具体操作:如存入数据库,然后进行响应)
6、取错误信息:标签格式 obj.errors 字典格式obj.errors.as_json()(取错误信息返回给前端
b.错误信息的提示
Form提交,属性页面的特性,模板对象内部值丰富,再显示时,值和错误信息都有
c.保留上一次提交数据
1、自动生成html标签
2、保留上一次提交的数据
注:Form使用:a b c结合
Ajax使用:a ,Ajax使用django的form验证有两种错误返回应用:as_json or as_data
上一篇:Django之model操作ORM目录篇 点击跳转
目录篇:Django之Form及ModelForm目录篇 点击跳转
下一篇:Django之Form验证初阶实战示例(验证篇二) 点击跳转