zoukankan      html  css  js  c++  java
  • Python菜鸟之路:Django 数据验证之钩子和Form表单验证

    一、钩子功能提供的数据验证

      对于数据验证,django会执行 full_clean()方法进行验证。full_clean验证会经历几个步骤,首先,对于model的每个字段进行正则验证,正则验证通过后,然后进行clean()方法验证,这里的clean函数,就是钩子函数。通常是需要我们自己去书写。

      分析上述钩子函数的弊端:如果在model数据库中,有多个字段都需要进行数据验证,则需要在每个字段后都需要有钩子存在才可以,而clean方法是对整体进行数据验证,并不能完成对于每个字段的验证。

      结论:由于钩子功能较弱,并且验证不通过会抛出异常,对于用户来说并不友好,因此通常不用钩子来进行验证。

    二、Form内置钩子

      Form的验证功能,经历四个阶段

    •   字段的自定义正则表达式
    •   字段的钩子函数,比如 name字段对应的clean_name方法
    •   执行clean方法的钩子
    •   执行_post_clean方法的钩子

      其中,前两个验证是以每个字段来循环验证的。

      每一种错误信息,放在每个字段的错误信息中,对于整体的,放到了self.errors['__all__'] 值的list中。

  • 相关阅读:
    随机100道四则运算(文件储存)
    基于 GitBook 搭建个人博客
    ios常用第三方库git下载地址
    网络工程师经常会用到的终端仿真软件
    最常用的终端仿真程序 替代putty
    Linux 命令大全
    Nginx 安装配置
    nginx
    React函数组件和class组件以及Hook
    2020年前端面试题及答案
  • 原文地址:https://www.cnblogs.com/jishuweiwang/p/6433723.html
Copyright © 2011-2022 走看看