最佳答案
我看到,在Flask 0.10中,g
将从请求上下文移动到应用程序上下文,这使我对g
的预期用途感到困惑。
我的理解(对于Flask 0.9)是:
g
存在于请求上下文中,也就是说,在请求开始时重新创建,并且直到它结束都可用g
打算用作“请求黑板”,在那里我可以放置与请求持续时间相关的东西(即,在请求的开始设置一个标志,并在结束时处理它,可能来自before_request
/after_request
对)g
还可以而且应该用于资源管理,即保存数据库连接等。下面哪个句子在Flask 0.10中不再正确了?有人能给我指出一个资源讨论原因的变化吗?我应该在Flask 0.10中使用什么作为“请求黑板”-我是否应该创建自己的应用程序/扩展特定的线程本地代理并将其推到上下文堆栈before_request
?如果我的应用程序存在很长一段时间(不像请求),因此资源永远不会被释放,那么在应用程序上下文中进行资源管理的意义是什么?