Конечно, есть, но вам нужно параметризовать регистрации.
Вместо декораторов переместите регистрацию в функцию:
def page_not_found(e):
return jsonify({'status': 'error',
'reason': '''There's no API call for %s''' % request.base_url,
'code': 404}), 404
def register_all(app):
app.register_error_handler(404, page_not_found)
затем импортируйте register_all
и вызовите его с помощью объекта Flask()
.
При этом вместо декоратора используется функция Flask.register_error_handler()
.
Для поддержки чертежей вам также нужно будет дождаться следующего выпуска Flask (одна из которых включает эту фиксацию), или используйте функцию декоратора напрямую:
app_or_blueprint.errorhandler(404)(page_not_found)
Для многих из этих задач вы также можете использовать Blueprint, если вы используете Blueprint.app_errorhandler()
:
common_errors = Blueprint('common_errors')
@common_errors.errorhandler(404)
def page_not_found(e):
return jsonify({'status': 'error',
'reason': '''There's no API call for %s''' % request.base_url,
'code': 404}), 404
Не все всё можно обработать с помощью Blueprint, но если вы регистрируете только обработчики ошибок, Blueprint — хороший подход.
Импортируйте план как обычно и зарегистрируйте его в своем приложении:
from yourmodule import common_errors
app.register_blueprint(common_errors)
person
Martijn Pieters
schedule
01.07.2014
Blueprint.app_errorhandler
: stackoverflow.com/questions/12768825/ а> - person Jinsong Li   schedule 19.10.2017