【发布时间】:2016-05-14 14:07:06
【问题描述】:
我希望能够在 Flask 中使用 abort() 来显示自定义错误消息。我遇到了一个不寻常的情况,我遇到了麻烦。我的代码如下。
from flask import Flask, abort, jsonify, make_response, request
app = Flask(__name__)
@app.errorhandler(400)
def custom400(error):
return make_response(jsonify({'message': error.description}), 400)
@app.route('/test', methods=['POST'])
def test():
abort(400, 'custom error message')
if __name__ == '__main__':
app.run()
上面的代码可以工作,但如果我尝试访问任何表单数据,则行为会有所不同,因为我无法访问自定义错误消息。
def test():
a = request.form['some_value']
abort(400, 'custom error message')
如何避免这种情况?这是 Flask 的错误吗?
注意:以上代码取自how to get access to error message from abort command when using custom error handler
【问题讨论】:
-
您能否澄清“我无法访问自定义错误消息”的意思?
-
我几乎可以肯定该错误没有描述,因为您没有在 POST 正文中设置
some_value,因此 400 错误来自request.form.__getitem__- 如果您更改会发生什么test的第一行到a = request.form.get('some_value')? -
@SeanVieira - 你是对的!我不知道我访问无效字典对象的尝试导致了 400。您能否发表您的评论作为答案,以便我接受?
标签: python-3.x flask