当前位置:  开发笔记 > 编程语言 > 正文

棉花糖不会出错

如何解决《棉花糖不会出错》经验,为你挑选了1个好方法。

如果我使用Marshmallow来创建这样的模式:

class TempSchema(Schema):
    id = fields.Int()
    email = fields.Str(required=True,
                   validate=validate.Email(error='Not a valid email address'))
    password = fields.Str(required=True,
                      validate=[validate.Length(min=6, max=36)],
                      load_only=True)

然后我做了类似的事情:

temp = TempSchema()
temp.dumps({'email':123})

我期待一个错误,但我得到:

MarshalResult(data='{"email": "123"}', errors={})

为什么这个或其他什么不显示为错误?



1> Steve L..:

验证仅在反序列化(使用Schema.load),而不是序列化(Schema.dump)时发生.

data, errors = schema.load({'email': '123'})
print(errors)
# {'email': ['Not a valid email address'], 'password': ['Missing data for required field.']}

如果您不需要反序列化数据,则可以使用Schema.validate.

errors = schema.validate({'email': '123'})
print(errors)
# {'email': ['Not a valid email address'], 'password': ['Missing data for required field.']}

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有