wtforms自定义表单验证

https://wtforms.readthedocs.io/en/stable/
如果想要对表单中的某个字段进行更细化的验证,那么可以针对这个字段进行单独的验证。步骤如下:
1. 定义一个方法,方法的名字规则是:`validate_字段名(self,filed)`。
2. 在方法中,使用`field.data`可以获取到这个字段的具体的值。
3. 如果数据满足条件,那么可以什么都不做。如果验证失败,那么应该抛出一个`wtforms.validators.ValidationError`的异常,并且把验证失败的信息传到这个异常类中。
示例代码:
```python
captcha = StringField(validators=[Length(4,4)])
    # 1234
    def validate_captcha(self,field):
        if field.data != '1234':
            raise ValidationError('验证码错误!')
```
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
wtforms-json是一个用于在Flask应用中处理JSON数据的扩展库。它允许你使用wtforms库来验证和处理复杂格式的JSON数据。通过使用wtforms-json,你可以定义一个新的基类JsonForm,该基类继承自wtforms的Form类,并且可以接受复杂格式的JSON数据进行校验。在JsonForm中,你可以使用wtforms_json.init()来初始化wtforms-json,并使用from_json()方法从请求中获取JSON数据并创建表单对象。然后,你可以使用validate()方法对表单进行验证,如果验证失败,可以抛出ParameterException异常。最后,你可以返回验证通过的表单对象。[1] 普通格式的JSON参数示例如下: { "name": "xiaowang", "age": 1, "address": "beijing" } 复杂格式的JSON参数示例如下: { "category": { "category_name": "电脑", "category_id": 2 }, "address_list": [ "beijing", "shanghai" ], "name": "xiaohong", "age": 1 } 在使用wtforms-json之前,使用普通的wtforms库无法接受复杂格式的JSON数据,只能接受普通格式的JSON数据和URL查询参数进行校验。[2] 为了处理不同类型的请求数据,可以使用自定义的RequestForm类。在RequestForm类中,可以根据请求的Content-Type来判断请求的数据类型。如果Content-Type为"application/json",则使用request.get_json()获取JSON数据,并使用super()方法初始化表单对象。如果Content-Type为"application/x-www-form-urlencoded"或"multipart/form-data",则使用request.form.to_dict()获取表单数据,并使用super()方法初始化表单对象。最后,可以使用validate()方法对表单进行验证,并在验证失败时返回错误信息。[3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值