Python中基于AnyOf()函数的wtforms.validators库的选项验证实例
发布时间:2023-12-28 22:19:58
AnyOf()是wtforms.validators库中的一个验证函数,用于验证一个字段的值是否在给定的选项中。
使用示例:
from wtforms import Form, StringField
from wtforms.validators import AnyOf
class MyForm(Form):
choices = StringField('Choices', validators=[AnyOf(['a', 'b', 'c'], message='Invalid choice')])
form = MyForm(choices='d')
print(form.validate()) # 输出 False
print(form.errors) # 输出 {'choices': ['Invalid choice']}
在上面的示例中,我们定义了一个StringField字段,它的值只能是'a'、'b'或'c'中的一个。我们通过验证器AnyOf(['a', 'b', 'c'])来实现这个验证规则。
当我们实例化表单对象form,并将choices字段的值设置为'd'时,调用form.validate()会返回False,表示表单验证失败。我们可以通过form.errors来查看验证失败的具体原因,这里错误信息为{'choices': ['Invalid choice']}。
如果我们将choices字段的值设置为'a'、'b'或'c'中的一个,那么调用form.validate()会返回True,表示验证通过。
通过使用AnyOf()函数,我们可以方便地实现对字段值的选项验证,确保输入的值符合我们的预期。
