У меня есть простой маршрут в моем приложении Flask:
@app.route('/', methods=['GET'])
def homepage():
return '{}'.format(1 / 0)
Когда пользователь посещает site.com/, он должен увидеть результат 1/0.Конечно, это невозможно, поэтому Python выдает мне ошибку.
Теперь я бы хотел, чтобы все ошибки на всех моих конечных точках обрабатывались особым образом: я хотел бы, чтобы они возвращали ответ JSON, например:
{
'status_code': 500,
'status': 'Internal Server Error'
}
Я написал декоратор, чтобы сделать именно это:
def return_500_if_errors(f):
def wrapper(*args, **kwargs):
try:
return f(*args, **kwargs)
except:
response = {
'status_code': 500,
'status': 'Internal Server Error'
}
return flask.jsonify(response), 500
return wrapper
Затем я добавил декоратор к конечной точке:
@return_500_if_errors
@app.route('/', methods=['GET'])
def homepage():
return '{}'.format.(1 / 0)
Однако декоратор кажетсяне иметь никакого эффекта.