文档章节

python django form 正则表达式验证

原谅我的突然
 原谅我的突然
发布于 2016/01/02 23:02
字数 274
阅读 56
收藏 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之路——3 Django的路由层

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

袁勇i
06/23
0
0
Django Book 2.0 笔记——View

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

lionets
2014/03/31
0
0
【译】自己动手写Django app,第三部分【完】

原文地址:https://docs.djangoproject.com/en/1.4/intro/tutorial03/ 这个教程是从教程2留下的地方开始的。我们继续这个基于网络调查应用程序并且将关注与创建一个公共接口——“view”。 ...

davidxp
2013/02/25
0
0
Django学习笔记-初识Django

初识Django 以前搞过一段时间的java web,也做过一些项目。现在试一试python的Django框架吧。 总体上做网站需要的基本功: 前端相关知识(HTML, CSS, JS, JQuery等等) Linux 基础命令 数据库,...

habits
2017/12/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
35分钟前
2
0
现场看路演了!

HiBlock
昨天
6
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
6
0
官方精简版Windows10:微软自己都看不过去了

微软宣布,该公司正在寻求解决方案,以减轻企业客户的Windows 10规模。该公司声称,企业客户下载整个Windows 10文件以更新设备既费钱又费时。 微软宣布,该公司正在寻求解决方案,以减轻企业...

linux-tao
昨天
6
0
TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部