Django之Form以及modelform验证初识(验证篇一)

上一篇:Django之model操作ORM目录篇 点击跳转
目录篇:Django之Form及ModelForm目录篇 点击跳转
下一篇:Django之Form验证初阶实战示例(验证篇二) 点击跳转

目录

  • 分析前端提交数据后到后端的验证流程
  • Django的Form具备几大功能
  • 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验证初阶实战示例(验证篇二) 点击跳转​​​​​​​

 

你可能感兴趣的:(Django)