from marshmallow import Schema from webargs import fields 对字段做非空验证
可以使用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来对字段做非空验证了
原文地址: https://www.cveoy.top/t/topic/ioMl 著作权归作者所有。请勿转载和采集!