我正在尝试使用Flask设置REST Web服务。我遇到错误处理问题@app.errorhandler(404)
#!flask/bin/python
from flask import Flask, jsonify, abort
app = Flask(__name__)
@app.errorhandler(404)
def not_found(error):
return jsonify({'error':'not found'}), 404
if __name__ == '__main__':
app.run(debug = True)
当我犯罪时,我什么都没得到。在我的调试器中,它告诉我我有一个TypeError: 'Response' object is not iterable
我在另一个方法中使用jsonify
并且没有问题的字典,但是当我将其作为错误返回时,它不起作用。有什么想法吗?
答案 0 :(得分:9)
from flask import Flask, jsonify
app = Flask(__name__)
@app.errorhandler(404)
def not_found(error):
return jsonify({'error':'not found'}), 404
app.run()
使用上面的代码,curl http://localhost:5000/
会给我:
{
"error": "not found"
}
您使用的是flask.jsonify
吗?
答案 1 :(得分:2)
正如前面答案的评论中所提到的,Flask 0.8不支持该代码,并且需要0.9或更高版本。如果您需要支持Flask 0.8,这里是一个兼容的版本,它指定了“status_code”:
@app.errorhandler(404)
def not_found(error):
resp = jsonify({'error':'not found'})
resp.status_code = 404
return resp