python - 我如何使用 python voluptuous 验证 url 和电子邮件?

标签 python validation

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

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

查看源代码,我发现 voluptuous 有一个内置的 Url 函数,在电子邮件的情况下它没有,所以我想建立自己的,问题是我不知道必须在模式中调用此函数。

最佳答案

更新:现在 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

关于python - 我如何使用 python voluptuous 验证 url 和电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15290254/

相关文章:

python - vtkSplineRepresentation 的 Actor ()

php - 验证仅包含字母、数字和可选空格的字符串

NoSQL 注入(inject)? (PHP->phpcassa->Cassandra)

validation - URL 在 W3C HTML/XHTML 验证中失败

javascript - 为什么名称验证无效?

database - 数据验证应该在数据库级别完成吗?

python - 将时间列表与时间范围列表相交的最佳方法

python - 使用 C++ 时从二进制文件中读取 int 不正确

python - 如何生成字符串与字符之间有空格的所有可能组合? Python

python - 无法在 python selenium 中加载 firefox 附加组件