gpt4 book ai didi

python - Marshmallow @validates 不会引发错误

转载 作者:行者123 更新时间:2023-11-28 22:16:22 24 4
gpt4 key购买 nike

全部。我使用 Flask 作为主要框架和用于序列化 JSON 数据的 Marshmallow 包编写 API 项目。我想创建播放器实例,但在创建之前验证他的昵称。查看:

def create_player()
...
try:
data = player_schema.load(request_data)
# when error raised excect case does not handle it
# but data has 2 dicts:
# UnmarshalResult(data={}, errors={'nickname': ['Error!!!']})
except ValidationError as err:
return jsonify(err.messages), 400
...

架构:

class PlayerSchema(Schema):

nickname = fields.Str(required=True)
...

@validates('nickname')
def validate_nickname(self, value):
raise ValidationError('Error!!!')

最佳答案

这是因为默认情况下,在 marshmallow 2 中,模式不会在出错时引发。

您需要传递 strict 元参数:

class PlayerSchema(Schema):

nickname = fields.Str(required=True)

class Meta:
strict = True

在 marshmallow 3 中,模式总是在出错时引发。

关于python - Marshmallow @validates 不会引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52224943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com