sunny-cheng  

forms组件 

概念

  django框架提供的一个Form类,来进行web开发中的表单提交数据的处理工作。

 

校验字段功能

 models.py

  

 

 

     views.py

    定义检验规则:

    

 

    前端提交的forms校验

 

     

       form.is_valid() 判断form类所校验的字段是否通过,返回bool值,是所有检验的类都通过

       form.cleande_data 所有验证通过的数据放在这里 ,类似字典类型

       form.errors  所有验证错误数据放在这里 ,类似字典类型,这个方法,返回值是对象,你可以通过get取值

 

   regist.html

     

 循环标签方式

  views.py

    定义校验规则:比上面多了label属性,跟html中的form 作用是一样显示字段的名称

    

 

  

 

  regist.html

    

       

 

 

 

     浏览器渲染结果

 

      

 

       可以看到forms验证字段,浏览器会将他渲染成input标签显示到页面,label也渲染了

 

渲染input框 

  views.py

    这里给字段添加一个attr,

    

 

   网页显示:

      

 

 

 

渲染错误信息

 

  views.py

 

    

 

    regist.html

 

       

 

 

局部钩子        

    在校验字段定义钩子函数。以clean_字段命名,在源码,这个函数回自动执行

       作用:取出该字段,进行校验,如果通过,将该字段返回,如果失败,抛异常(ValidationError)

       

     
  • 校验失败,抛异常,将异常信息以 {'name':value} 写入 errors 字典中
  • 校验成功,把name返回到clean_data,写入clean_data字典中
  • 抛出异常的类型为ValidationError,from django.core.exceptions import ValidationError导入

 

 全局钩子

  

 

  • 校验失败,抛异常,将异常信息以{'__all__':[value,]} 写入 errors 字典中
  • 校验成功,返回clean_data字典
  • 抛出异常的类型为ValidationError,from django.core.exceptions import ValidationError导入

 

 

posted on 2019-10-05 23:36  sunny-cheng  阅读(157)  评论(0编辑  收藏  举报