I'm trying to set of a REST web service using Flask. I'm having a problem with the error handling @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)
When I cURL it, I get nothing. In my debugger, it's telling me I have a TypeError: 'Response' object is not iterable
I used jsonify
in another method with a dictionary with no problem, but when I return it as an error, it doesn't work. Any ideas?
from flask import Flask, jsonify
app = Flask(__name__)
@app.errorhandler(404)
def not_found(error):
return jsonify({'error':'not found'}), 404
app.run()
With code above, curl http://localhost:5000/
give me:
{
"error": "not found"
}
Are you using flask.jsonify
?
As mentioned in the comments for the previous answer, that code isn't supported on Flask 0.8, and would require 0.9 or higher. If you need to support Flask 0.8, here is a compatible version that assigns the "status_code" instead:
@app.errorhandler(404)
def not_found(error):
resp = jsonify({'error':'not found'})
resp.status_code = 404
return resp
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With