7

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)

私がそれをcURLすると、何も得られません。私のデバッガーでは、それは私が持っていると言っていますTypeError: 'Response' object is not iterable

別のメソッドで問題なく辞書で使用jsonifyしましたが、エラーとして返すと機能しません。何か案は?

4

2 に答える 2

10
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ますか?

于 2013-06-17T18:37:48.070 に答える
4

前の回答のコメントで述べたように、そのコードは 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
于 2014-01-02T20:20:18.423 に答える