文档章节

python django form 正则表达式验证

原谅我的突然
 原谅我的突然
发布于 2016/01/02 23:02
字数 274
阅读 68
收藏 0

这里讲的是django怎样进行正则表达式验证。
django的form里面可以对输入进行一些基本的验证,但是如果要进行正则表达式验证的话就要对form进行clean扩展了。
下面是一个例子:

import re//这个是引用对应的正则验证包

class UserForm(BaseModelForm):
    phone = forms.CharField(label='手机号码',help_text='(必填)例:13888888888/0771-3236558', required=True,max_length=30,min_length=11)
    email = forms.EmailField(label='邮箱', help_text='(必填)',required=True,error_messages={'required':"请输入邮箱地址"})
    class Meta:
        model = User
        fields = ['phone', 'email']
    def clean_phone(self)://clearn_字段名称
          phone = self.cleaned_data['phone']//获取对应的字段
          pattern=re.compile(r"^((\d{3,4}-)?\d{7,8})$|(1[3-9][0-9]{9})")//设置正则验证
          if pattern.match(phone)://如果验证失败的话就会返回none
             pass
          else:
              msg=u"请输入正确的机机或座机号码!"
              self._errors["phone"] = self.error_class([msg])//设置输入框的告警文字
          self.phone=phone 
          return phone


上面的例子可以看出:email可以通过EmailField来进行验证,但是手机却不可以,所以我们对手机进行了正则验证


© 著作权归作者所有

共有 人打赏支持
原谅我的突然
粉丝 1
博文 13
码字总数 1527
作品 0
闵行
程序员
私信 提问
七日Python之路--第十二天(Django Web 开发指南)

《Django Web 开发指南》。貌似使用Django1.0版本,基本内容差不多,细读无妨。地址:http://www.jb51.net/books/76079.html (一)第一部分 入门 (1)内置数字工厂函数 int(12.34)会创建一...

明天以后
2014/08/09
0
0
Django Book 2.0 笔记——View

“D”不发音 文中所有交互的部分都是在 python manage.py shell 下执行的, MTV 模式: 将数据驱动的 web 应用按数据存取逻辑、表现逻辑和业务逻辑划分结构的一种概念被称为 Model-View-Con...

lionets
2014/03/31
0
0
Django 1.3 首个Alpha版发布

Django 1.3首个Alpha版发布!Django 是一个开放源代码的Web应用框架,由Python写成。 1.3新改进: 基于Class的视图:新增了一个框架,可以使用一个类作为视图; 日志:支持Python的 logging模...

小编辑
2010/11/14
614
1
Django之路——3 Django的路由层

django不得不说是个很强大的框架,当前端给了我们一堆网页的时候,我们在考虑怎么去让这些页面与调用视图的函数配对的时候,而django则给我们提供了强大路由分发功能,让我们不在花时间浪费在...

袁勇i
06/23
0
0
基于Linux环境的Web.py框架介绍

前言 客户端和Web服务器的交互过程可以概括为:Web服务器接收客户端的请求后,由Web应用服务器对浏览器的请求进行处理,将生成的响应传递给Web服务器,再由Web服务器返回给客户端。为了简化W...

元宵大师
07/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

新手也能看懂,消息队列其实很简单

该文已加入开源项目:JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目,Star 数接近 16k)。地址:https://github.com/Snailclimb/JavaGuide. 本文内容思维导图: 消息...

阿里云官方博客
21分钟前
3
0
如何在Chrome浏览器中启动deviceready事件(尝试调试phonegap项目)?

我正在开发PhoneGap应用程序,我希望能够在Chrome中调试它,而不是在电话上调试。但是,我在onGetReady()函数中初始化我的代码,该函数在PhoneGap触发“deviceready”事件时触发。由于Chr...

kisshua
今天
9
0
nginx中部署vue打包后的静态文件

如何在nginx中部署静态资源就不描述了, 请看我的这篇博客 将vue脚手架项目打包后的静态文件放到nginx上, 发现有个问题, 即url上有#, 怎么去掉这个#呢. 1 项目中router的mode 路由的mode要为h...

克虏伯
今天
13
0
JS容易理解错误的地方

在这端代码执行的末尾,你会不会hi变量回事函数中的hi了?你会不会认为这不是按引用传递了? 对值传递和引用传递产生质疑了? 1 var hi = {};2 function sayHello(hi) { ...

器石_
今天
10
0
Java开发学习--MongoDB

之前只学过sql,第一次使用非关系型数据库。以前对于关系型数据库与非关系型数据库的概念很模糊,通过这次的学习对这两者有了一个清晰的概念。 主键 在MongoDB中,主键名叫"_id",如果在生成...

微笑向暖wx
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部