validate -- 效验模块

validate 模块源代码在文件 applications/common/utils/validate.py 下,主要用于数据效验与过滤。

函数

validate.str_escape(s)

对字符串进行 XSS 过滤,返回转义后的安全字符串。

参数:

s -- 需要转义的字符串。

返回:

返回转义后的字符串,如果输入为空则返回 None。

validate.between(*args, **kwargs)

验证数字是否介于最小值和最大值之间。 适用于整数、浮点数、小数和日期等类型。

参数:
  • value -- 需要验证的数字。

  • min -- 数字的最小值(可选)。

  • max -- 数字的最大值(可选)。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import between

between(5, min=2)  # True
between(13.2, min=13, max=14)  # True
between(500, max=400)  # ValidationFailure(func=between, args=...)
validate.domain(*args, **kwargs)

验证给定值是否为有效的域名。

参数:

value -- 需要验证的域名字符串。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import domain

domain('example.com')  # True
domain('example.com/')  # ValidationFailure(func=domain, ...)
validate.email(*args, **kwargs)

验证给定值是否为有效的电子邮件地址。

参数:

value -- 需要验证的电子邮件地址。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import email

email('someone@example.com')  # True
email('bogus@@')  # ValidationFailure(func=email, ...)
validate.iban(*args, **kwargs)

验证给定值是否为有效的 IBAN 代码。

参数:

value -- 需要验证的 IBAN 代码。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import iban

iban('DE29100500001061045672')  # True
iban('123456')  # ValidationFailure(func=iban, ...)
validate.ipv4(*args, **kwargs)

验证给定值是否为有效的 IPv4 地址。

参数:

value -- 需要验证的 IPv4 地址。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import ipv4

ipv4('123.0.0.7')  # True
ipv4('900.80.70.11')  # ValidationFailure(func=ipv4, args={'value': '900.80.70.11'})
validate.ipv6(*args, **kwargs)

验证给定值是否为有效的 IPv6 地址。

参数:

value -- 需要验证的 IPv6 地址。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import ipv6

ipv6('abcd:ef::42:1')  # True
ipv6('abc.0.0.1')  # ValidationFailure(func=ipv6, args={'value': 'abc.0.0.1'})
validate.length(*args, **kwargs)

验证给定字符串的长度是否在指定范围内。

参数:
  • value -- 需要验证的字符串。

  • min -- 字符串的最小长度(可选)。

  • max -- 字符串的最大长度(可选)。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import length

length('something', min=2)  # True
length('something', min=9, max=9)  # True
length('something', max=5)  # ValidationFailure(func=length, ...)
validate.mac_address(*args, **kwargs)

验证给定值是否为有效的 MAC 地址。

参数:

value -- 需要验证的 MAC 地址。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import mac_address

mac_address('01:23:45:67:ab:CD')  # True
mac_address('00:00:00:00:00')  # ValidationFailure(func=mac_address, args={'value': '00:00:00:00:00'})
validate.slug(*args, **kwargs)

验证给定值是否为有效的 Slug 格式。 有效的 Slug 只能包含字母数字字符、连字符和下划线。

参数:

value -- 需要验证的字符串。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import slug

slug('my.slug')  # ValidationFailure(func=slug, args={'value': 'my.slug'})
slug('my-slug-2134')  # True
validate.url(*args, **kwargs)

验证给定值是否为有效的 URL。

参数:
  • value -- 需要验证的 URL。

  • public -- 是否仅允许公共 URL(可选)。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import url

url('http://foobar.dk')  # True
url('http://10.0.0.1')  # True
url('http://foobar.d')  # ValidationFailure(func=url, ...)
url('http://10.0.0.1', public=True)  # ValidationFailure(func=url, ...)
validate.uuid(*args, **kwargs)

验证给定值是否为有效的 UUID。

参数:

value -- 需要验证的 UUID。

返回:

如果验证成功返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import uuid

uuid('2bc1c94f-0deb-43e9-92a1-4775189ec9f8')  # True
uuid('2bc1c94f 0deb-43e9-92a1-4775189ec9f8')  # ValidationFailure(func=uuid, ...)
validate.even(value)

验证给定值是否为偶数。

参数:

value -- 需要验证的数字。

返回:

如果是偶数返回 True,否则返回 ValidationFailure。

示例:

from applications.common.utils.validate import even

even(4)  # True
even(5)  # ValidationFailure(func=even, args={'value': 5})