Python 未调用请求前的瓶钩

Python 未调用请求前的瓶钩,python,bottle,Python,Bottle,我不能使用@u local_瓶.hook('before_request') 在单文件场景中,我从同一个文件运行瓶子,@_local_瓶子.hook('before_request')可以工作: 但是当我从start.py启动瓶子时,我加载所有子模块并合并它们,钩子不会被调用 def start_server(debug=False): app, logger = setup_app(debug) logger.debug("Importing applications

我不能使用@u local_瓶.hook('before_request')

在单文件场景中,我从同一个文件运行瓶子,@_local_瓶子.hook('before_request')可以工作:

但是当我从start.py启动瓶子时,我加载所有子模块并合并它们,钩子不会被调用

def start_server(debug=False):
    app, logger = setup_app(debug)
    logger.debug("Importing applications.")
    import ps_web_apps.load_modules

    for module, ps_bottle in ps_web_apps.load_modules.get_bottle_list():
        logger.debug("Importing application '%s'.", module)
        app.merge(ps_bottle)
    app = SessionMiddleware(app, session_opts)
    logger.debug("Starting server.")
    sys.argv[1:] = ["--workers", num_of_workers, "--timeout", gunicorn_timeout]
    if enable_gevent:
        logger.debug("Started as asyc gevent server.")
        bottle.run(app=app, port=8081, server='gunicorn', worker_class='gevent', debug=debug, quiet=not debug)
    else:
        bottle.run(app=app, port=8081, server='gunicorn', debug=debug, quiet=not debug)
奇怪的是,其他的装饰师像“get”一样在它旁边工作:

@_local_bottle.hook('before_request')
def connect_test():
    print("test _local_bottle.hook")

@_local_bottle.get('/portal')
def portal():
    logging.debug("log test")

为什么其他装饰师可以工作,而忽略了@u local\u瓶子.hook('before\u request')?

你确定不能用钩子代替钩子吗?根据我的经验,瓶子插件比钩子工作更可靠。嗨,谢谢插件的提示。我已经玩过这个插件了。我的场景:瓶子,小虫,博士后。有一个瓶子peewee插件。困难的是,我真的希望我的模型在一个单独的文件中,而不是在瓶子应用程序中。我必须更加努力使插件工作。
@_local_bottle.hook('before_request')
def connect_test():
    print("test _local_bottle.hook")

@_local_bottle.get('/portal')
def portal():
    logging.debug("log test")