Flask 什么';应用程序上下文和请求上下文之间的区别是什么?

Flask 什么';应用程序上下文和请求上下文之间的区别是什么?,flask,Flask,Flask文档说明有两个本地上下文:应用程序上下文和请求上下文。它们都是根据请求创建的,并在完成时拆下 那么,有什么区别呢?每个应用程序的用例是什么?仅创建其中一个时是否存在任何条件 它们都是根据请求创建的,并在完成时拆下 在请求生命周期中也是如此。创建应用程序上下文,请求上下文,做一些魔术,销毁请求上下文,销毁应用程序上下文 应用程序上下文可以在没有请求的情况下存在,这就是为什么两者都有。例如,如果我从shell运行,我可以创建app\u上下文,而无需请求,并且可以访问“current\u a

Flask文档说明有两个本地上下文:应用程序上下文和请求上下文。它们都是根据请求创建的,并在完成时拆下

那么,有什么区别呢?每个应用程序的用例是什么?仅创建其中一个时是否存在任何条件

它们都是根据请求创建的,并在完成时拆下

在请求生命周期中也是如此。创建应用程序上下文,请求上下文,做一些魔术,销毁请求上下文,销毁应用程序上下文

应用程序上下文可以在没有请求的情况下存在,这就是为什么两者都有。例如,如果我从shell运行,我可以创建
app\u上下文
,而无需请求,并且可以访问“current\u app”代理

分离关注点并让您选择不创建请求上下文是一个设计决策。请求上下文很昂贵

在old Flask(0.7?)中,您只有请求上下文,并使用Werkzeug代理创建了
当前应用程序。因此,应用程序上下文只是创建一个模式

一些关于appcontext的文档,但您可能已经阅读了: