python - 未调用瓶钩 before_request
问题描述
我无法使用@_local_bottle.hook('before_request')。
在我从同一个文件运行瓶子的单个文件场景中,@_local_bottle.hook('before_request') 有效:
_local_bottle = bottle.Bottle()
def get_bottle():
return _local_bottle
@_local_bottle.hook('before_request')
def connect_test():
print("test _local_bottle.hook")
但是当我从加载所有子模块并合并它们的 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")
为什么其他装饰器可以工作,而 @_local_bottle.hook('before_request') 被忽略?
解决方案
推荐阅读
- javascript - 使用 mocha 在 nodejs 中测试 promise 请求
- javascript - 背景图像对于移动设备来说太大了..我该如何解决?
- java - 通过 html 文件运行 JavaFX 应用程序时出现 ClassNotFoundException
- python - 将向量分配给空的熊猫数据框
- c++ - 使用智能指针要求我的类可以公开实例化是否是必要的权衡?
- java - 从一个容器向另一个容器发出 HTTP 请求
- keras - 多属性情感分析
- ios - 以纳秒为单位的快速日期差异不起作用
- javascript - Vue.js在初始化后显示空白页面
- javascript - 如何在 react-spring 中使用 useTransition 对列表的过滤进行动画处理