Я использую bottle.route()
для перенаправления HTTP запросов к соответствующим функциямКак выполнить предварительную обработку всех вызовов?
import bottle
def hello():
return "hello"
def world():
return "world"
bottle.route('/hello', 'GET', hello)
bottle.route('/world', 'GET', world)
bottle.run()
Я хотел бы добавить предварительную обработку для каждого вызова, а именно способность действовать на IP-адрес источника (полученного с помощью bottle.request.remote_addr
). Я могу указать предварительную обработку по каждому маршруту
import bottle
def hello():
preprocessing()
return "hello"
def world():
preprocessing()
return "world"
def preprocessing():
print("preprocessing {ip}".format(ip=bottle.request.remote_addr))
bottle.route('/hello', 'GET', hello)
bottle.route('/world', 'GET', world)
bottle.run()
, но это выглядит неловко.
Есть ли способ подключить функцию предварительной обработки на глобальном уровне? (? Так что каждый вызов идет, хотя это)
как об использовании декораторов – realli
@realli: не будет ли это более или менее одинаковым (один декоратор за функцию, аналогичный моему вызову 'preprocessing())? – WoJ
да, попробуйте плагин для бутылок http://bottlepy.org/docs/dev/plugindev.html#bottle.Plugin – realli