可以使用marshmallow和webargs来对字段做非空验证。首先,需要定义一个Schema类来描述字段和验证规则。然后,使用webargs库的fields模块来定义字段类型。下面是一个示例代码:

from marshmallow import Schema, ValidationError, validates, fields
from webargs import fields

class MySchema(Schema):
    name = fields.Str(required=True)
    age = fields.Int(required=True)

    @validates('name')
    def validate_name(self, value):
        if not value:
            raise ValidationError('Name cannot be empty')

    @validates('age')
    def validate_age(self, value):
        if not value:
            raise ValidationError('Age cannot be empty')

# 使用示例
data = {
    'name': 'John Doe',
    'age': 25
}

schema = MySchema()
try:
    result = schema.load(data)
    print(result)  # 输出验证通过的数据
except ValidationError as err:
    print(err.messages)  # 输出错误信息

在上面的例子中,定义了一个MySchema类,包含了两个字段name和age,都设置为required=True表示必须非空。然后,使用@validates装饰器定义了两个验证函数,分别对name和age字段进行非空验证。

在使用示例中,创建了一个data字典来存储要验证的数据。然后,创建了一个MySchema实例,并调用load方法来验证数据。如果验证通过,则返回验证通过的数据,否则抛出ValidationError异常,其中包含了错误信息。

这样就可以使用marshmallow和webargs来对字段做非空验证了

from marshmallow import Schema from webargs import fields 对字段做非空验证

原文地址: https://www.cveoy.top/t/topic/ioMl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录