如何用python妖娆验证网址和电子邮件?

时间:2013-03-08 09:04:49

标签: python validation

我想验证网址和电子邮件输入数据与python voluptuous,可能是这样的:

schema = Schema({
    Required('url'): All(str, Url()),
    Required('email'): All(str, Email())
})

看看源代码我看到妖娆有一个内置的Url功能,在电子邮件的情况下它没有,所以我想建立我自己的,问题是我不知道有在架构中调用此函数。

1 个答案:

答案 0 :(得分:9)

更新:到目前为止voluptuous有电子邮件验证工具。

您可以像这样编写自己的验证器

import re
from voluptuous import All, Invalid, Required, Schema

def Email(msg=None):
    def f(v):
        if re.match("[\w\.\-]*@[\w\.\-]*\.\w+", str(v)):
            return str(v)
        else:
            raise Invalid(msg or ("incorrect email address"))
    return f

schema = Schema({
        Required('email') : All(Email())
    })

schema({'email' : "invalid_email.com"}) # <-- this will result in a MultipleInvalid Exception
schema({'email' : "valid@email.com"}) # <-- this should validate the email address