验证库
procrustes的Python项目详细描述
procrustes是一个验证库,适用于验证用户输入数据, 即web表单或api调用。使用procrustes可以验证任何结构。
为此,procrustes有三个容器类:tuple、list和dict。 元组来自fp,具有固定类型的固定元素计数。 列表可以包含一种类型的任意数量的值。 dict是一个dict。
procrustes由验证器和表单组成。您可以使用验证器 表单功能。表单主要添加小部件和表单数据解析。
验证器
使用procrustes最简单的方法是构建验证器并使用它:
>>> from procrustes import validators as v >>> two_strings_v = v.Tuple(v.String(), v.String()) >>> auth = two_strings_v(['login', 'password']) >>> auth.data ('login', 'password') >>> auth.errors [] >>> auth = two_strings_v(['login']) >>> auth.data >>> auth.errors ['Must be iterable of length 2']
我们有非常强大的列表
>>> list_of_pairs_v = v.List(two_strings_v) >>> pairs = list_of_pairs_v([(str(x), str(x)) for x in xrange(10)]) >>> pairs.data [('0', '0'), ('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5'), ('6', '6'), ('7', '7'), ('8', '8'), ('9', '9')] >>> pairs.errors []
list、tuple和dict是递归的,因此可以构建任何所需的数据结构。
dict示例:
>>> dict_v = v.Dict({'pair': two_strings_v, 'pairs': list_of_pairs_v}) >>> data = dict_v({'pair': ['a', 'b'], 'pairs': [['a', 'b'], ['c', 'd']]}) >>> data.data {'pair': ('a', 'b'), 'pairs': [('a', 'b'), ('c', 'd')]} >>> data.errors []
验证器需要关键字参数:
>>> two_strings_v = v.Tuple(v.String(), v.String(), required=False) >>> dict_v = v.Dict({'pair': two_strings_v, 'pairs': list_of_pairs_v}) >>> data = dict_v({'pairs': [['a', 'b'], ['c', 'd']]}) >>> data.data {'pair': None, 'pairs': [('a', 'b'), ('c', 'd')]} >>> data.errors []
平坦
procrustes可以扁平化数据:
>>> list(data.flatten()) [('pairs__0__0', 'a'), ('pairs__0__1', 'b'), ('pairs__1__0', 'c'), ('pairs__1__1', 'd')]
并将其展开:
>>> dict_v.deepen(dict([('pairs__0__0', 'a'), ('pairs__0__1', 'b'), ('pairs__1__0', 'c'), ('pairs__1__1', 'd')])) {'pair': (None, None), 'pairs': [('c', 'd'), ('a', 'b')]}
表格
从验证者派生的表单,并以混合方式实现。每个领域 可以作为表单工作。您的表单可以由一个forms.string()组成。 除了验证器表单之外,还添加了方法widgets,template\widgets, unflat和是有效的。