全部。我使用Flask作为主要框架以及用于序列化JSON数据的Marshmallow包编写API项目。 我想创建播放器实例,但在创建之前请先验证其昵称。 查看:
<script>
$(function () {
// Unstyled Example
$.monte('#example1');
// Styled Buttons Example
// (see the CSS in the above style block)
$.monte('#example2', {auto:false});
// Callback Example
// Format and append the HTML:
$('#example3 > img').each(function(){
$(this)
.wrap('<div style="position:relative"/>')
.parent()
.append('<div><p>' + $(this).attr('alt') + '</p></div>')
.append('<img src="frame.png" alt="" class="frame"/>');
});
// Hide the text on all but the center slide:
$('#example3 div div').css({opacity: 0}).eq(0).css({opacity: 0.8});
// Using the callbacks to reveal and hide the text:
$.monte('#example3', {
auto:false,
callbackIn: function () {
$(this[0]).find('div').animate({opacity: 0.8}, 450);
},
callbackAway: function () {
$(this[0]).find('div').animate({opacity: 0}, 450);
}
});
});
</script>
模式:
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
...
答案 0 :(得分:2)
这是因为在棉花糖2中,默认情况下架构不会引发错误。
您需要传递strict
元参数:
class PlayerSchema(Schema):
nickname = fields.Str(required=True)
class Meta:
strict = True
在棉花糖3中(直到今天仍为beta,希望很快将被发布),模式总是在出错时引发。