Метод hook
Метод hook применяется к приложению
Bottle и вешает функцию на событие
before_request. Первым параметром
передаётся имя события, вторым - функция-обработчик.
Указанная функция будет вызвана перед обработкой
каждого запроса, что удобно для логирования,
проверки авторизации или установки общих переменных.
Синтаксис
@app.hook(event, func)
Пример
Давайте зарегистрируем хук, который выводит сообщение перед каждым запросом:
from bottle import Bottle, request
app = Bottle()
def log_request():
print('request to', request.path)
app.hook('before_request', log_request)
@app.route('/')
def index():
return 'hello'
Результат выполнения кода при запросе к адресу /:
"request to /"
Пример
Давайте сохраним данные в словаре request.environ
внутри хука и прочитаем их в обработчике:
from bottle import Bottle, request
app = Bottle()
def set_user():
request.environ['user'] = 'abcde'
app.hook('before_request', set_user)
@app.route('/user')
def user():
return request.environ.get('user', 'guest')
Результат выполнения кода для адреса /user:
<+html+>
abcde
<-html+>
Смотрите также
-
метод
add_hook,
который добавляет функцию-обработчик к событию -
метод
remove_hook,
который удаляет функцию-обработчик события -
метод
trigger_hook,
который вызывает все обработчики события -
событие
before_request,
которое срабатывает перед обработкой запроса