Метод add_hook
Метод add_hook применяется к приложению Bottle и добавляет функцию в список обработчиков указанного события. Первым параметром передаётся имя события. Вторым параметром передаётся функция-обработчик. Третьим необязательным параметром передаётся имя плагина. Метод возвращает декоратор, поэтому его можно использовать как @app.add_hook('before_request').
Синтаксис
app.add_hook(name, func, plugin=None)
Пример
Давайте зарегистрируем обработчик события before_request, который выводит сообщение перед каждым запросом:
from bottle import Bottle
app = Bottle()
@app.add_hook('before_request')
def before():
print('before request')
@app.route('/')
def index():
return 'hello'
app.run(port=8080)
После запуска сервера и перехода на адрес / в консоли появится:
"before request"
Пример
Давайте зарегистрируем обработчик события after_request, который добавляет заголовок к ответу:
from bottle import Bottle
app = Bottle()
@app.add_hook('after_request')
def after():
response.set_header('X-App', 'Bottle')
@app.route('/')
def index():
return 'hello'
app.run(port=8080)
После запроса к адресу / ответ будет содержать заголовок X-App со значением 'Bottle'.
Пример
Давайте передадим функцию-обработчик вторым параметром без использования декоратора:
from bottle import Bottle
app = Bottle()
def before():
print('before request')
app.add_hook('before_request', before)
@app.route('/')
def index():
return 'hello'
app.run(port=8080)
Результат работы будет таким же, как и в первом примере.
Смотрите также
-
метод
remove_hook,
который удаляет обработчик события -
метод
trigger_hook,
который вызывает обработчики события -
событие
before_request,
которое срабатывает перед обработкой запроса -
событие
after_request,
которое срабатывает после обработки запроса