使用 marshmallow 和 webargs 可以对字段做非空验证。首先,需要定义一个 Schema 类来描述字段和验证规则。然后,使用 webargs 库的 fields 模块来定义字段类型。下面是一个示例代码:\n\npython\nfrom marshmallow import Schema, ValidationError, validates, fields\nfrom webargs import fields\n\nclass MySchema(Schema):\n name = fields.Str(required=True)\n age = fields.Int(required=True)\n\n @validates('name')\n def validate_name(self, value):\n if not value:\n raise ValidationError('Name cannot be empty')\n\n @validates('age')\n def validate_age(self, value):\n if not value:\n raise ValidationError('Age cannot be empty')\n\n# 使用示例\ndata = {\n 'name': 'John Doe',\n 'age': 25\n}\n\nschema = MySchema()\ntry:\n result = schema.load(data)\n print(result) # 输出验证通过的数据\nexcept ValidationError as err:\n print(err.messages) # 输出错误信息\n\n\n在上面的例子中,定义了一个 MySchema 类,包含了两个字段 name 和 age,都设置为 required=True 表示必须非空。然后,使用 @validates 装饰器定义了两个验证函数,分别对 name 和 age 字段进行非空验证。\n\n在使用示例中,创建了一个 data 字典来存储要验证的数据。然后,创建了一个 MySchema 实例,并调用 load 方法来验证数据。如果验证通过,则返回验证通过的数据,否则抛出 ValidationError 异常,其中包含了错误信息。\n\n这样就可以使用 marshmallow 和 webargs 来对字段做非空验证了。


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

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