我正在尝试设置数据库连接并将其存储在flask.g
中以便稍后访问session interface。我发现Flask按以下顺序处理请求:
Flask.wsgi_app
设置RequestContext
full_dispatch_request
full_dispatch_request
来电preprocess_request
preprocess_request
调用before_request_funcs
据我了解,before_request_funcs
中存储的函数是我实际可以访问flask.g
的第一个地方。但是session_interface.open_session
方法已经调用了RequestContext.push
,早在我能够在flask.g
上设置任何内容之前。
RequestContext.push
中的评论似乎表明我应该能够在此之前设置数据库。
# Open the session at the moment that the request context is
# available. This allows a custom open_session method to use the
# request context (e.g. code that access database information
# stored on `g` instead of the appcontext).
我错过了什么吗?如何在会话打开之前在g
中设置数据库连接?