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中。
Python菜鸟之路:Django 数据验证之钩子和Form表单验证的更多相关文章
- the django travel three[form表单验证]
一:表单验证: 场景:因为浏览器的js可以被禁用,所以需要做后台的输入合法的验证. A:ajax发请求.需要注意的是ajax POST的数据的key值和form表单的里的字段名字一致,否则得不到验证! ...
- 第三百一十一节,Django框架,Form表单验证
第三百一十一节,Django框架,Form表单验证 表单提交 html <!DOCTYPE html> <html lang="en"> <head& ...
- django之form表单验证
django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf- -*- import re from django ...
- Day19 Django之Form表单验证、CSRF、Cookie、Session和Model操作
一.Form表单验证 用于做用户提交数据的验证1.自定义规则 a.自定义规则(类,字段名==html中的name值)b.数据提交-规则进行匹配代码如下: """day19 ...
- django form表单验证
一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...
- Django中的Form表单验证
回忆一下Form表单验证的逻辑: 前端有若干个input输入框,将用户输入内容,以字典传递给后端. 后端预先存在一个Form表单验证的基类,封装了一个检测用户输入是否全部通过的方法.该方法会先定义好错 ...
- Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)
一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...
- Django基础之Form表单验证
Form表单验证 1.创建Form类(本质就是正则表达式的集合) from django.forms import Form from django.forms import fields from ...
- web框架-(六)Django补充---form表单验证
一.form表单验证 1. 常规html页面的form表单验证 常规页面中,如果想实现对表单中用户输入信息的数据验证,需要配合Ajax来实现. 使用前我们先来熟悉下函数参数:request,其中包含的 ...
随机推荐
- 编译JDK1.7
1. 背景 想要一探JDK内部的实现机制,最便捷的路径之一就是自己编译一套JDK. 2. 获取JDK源码 从http://openjdk.java.net/下载源码,如 openjdk-6-src-b ...
- 基于AXI VDMA的图像采集系统
基于AXI VDMA的图像采集系统 转载 2017年04月18日 17:26:43 标签: framebuffer / AXIS / AXI VDMA 2494 本课程将对Xilinx提供的一款IP核 ...
- zooKeeper_《ZooKeeper官方指南》一致性保障
转 http://ifeve.com/zookeeper-consistency-guarantees/ 本文翻译自<ZooKeeper官方指南>,译者:追云,校对:追云 一致性保障 Zo ...
- java中的Closeable接口
一.概述 该接口位于java.io包下,声明例如以下:public interface Closeable Closeable 是能够关闭的数据源或目标. 调用 close 方法可释放对象保存的资源( ...
- Powershell对象条件查询筛选
在 Windows PowerShell 中,与所需的对象数量相比,通常生成的对象数量以及要传递给管道的对象数量要多得多.可以使用 Format cmdlet 来指定要显示的特定对象的属性,但这并不能 ...
- 如何使用Photoshop(PS)将图片的底色变为透明
很多时候需要将一张图片的底色变得透明.本文描述了使用PS将图片的一部分变得透明的方法.本例将一段艺术字的背景去掉,将背景透明的文字单独保存成图片,这样以后将这段文字粘贴到其他素材上的时候,就不用担心它 ...
- html获取js中的值
1.在html中添加标签<span id="id"></span> 2.在js代码中往id的标签塞值就可以了:$("#id").text ...
- js测试
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 虚拟机Ubuntu系统下kaldi安装与编译简介
kaldi官网:http://www.kaldi-asr.org/doc/index.html 在http://github.com/kaldi-asr/kaldi中直接下载kaldi的zip包,没有 ...
- 从以下哪一个选项中可以获得Servlet的初始化参数。
从以下哪一个选项中可以获得Servlet的初始化参数. A.Servlet B.ServletContext C.ServletConfig D.GenericServlet 解答:C servlet ...