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
导入