2024-06-26 17:45:31 发布
网友
根据Is it safe to store per-request data on flask.request?中给出的答案,g对象似乎是请求本地的(=具有单个请求的生存期)。也许我误解了这个答案,但是Flask文档指出g对象是全局的,这似乎与这个答案相矛盾。在
g
文档本身对这些细节有点欠缺,所以请您解释一下上下文和全局对象g的细节?具体解决以下问题:
request
app
为了在单个请求的生存期内存储数据,应该如何进行存储?
g对象就是为此而设计的。documentation声明:
Flask provides you with a special object that ensures it is only valid for the active request and that will return different values for each request.
尽管文档将g称为“global”,但这并不准确-“thread global”会更好。在
为了在应用程序的生存期内存储数据,应该如何进行存储?
我认为这个问题的答案比我能回答得好(或更好): Preserving global state in a flask application
烧瓶可用于多工艺环境。假设在这种操作模式下会有多个应用程序范围的对象,这是正确的吗?(这意味着所有这些app或g对象需要在每个worker进程的生命周期内单独初始化。)
在多进程环境中,每个请求都被作为一个独立的线程来处理,并且g是在每个请求的基础上初始化和销毁的,因此并发的g对象和线程一样多——尽管每个线程只能看到自己的对象。在大多数情况下,我怀疑应该只有一个app对象,即程序员创建的Flask()类的实例,即app = Flask(__name__)或类似对象。在
app = Flask(__name__)
Blueprints和Application Dispatching是拥有“多个”应用程序对象的两种方式,只要您有多个应用程序并发运行。在
为了在单个请求的生存期内存储数据,应该如何进行存储?
g
对象就是为此而设计的。documentation声明:尽管文档将
g
称为“global”,但这并不准确-“thread global”会更好。在为了在应用程序的生存期内存储数据,应该如何进行存储?
我认为这个问题的答案比我能回答得好(或更好): Preserving global state in a flask application
烧瓶可用于多工艺环境。假设在这种操作模式下会有多个应用程序范围的对象,这是正确的吗?(这意味着所有这些app或g对象需要在每个worker进程的生命周期内单独初始化。)
在多进程环境中,每个请求都被作为一个独立的线程来处理,并且
g
是在每个请求的基础上初始化和销毁的,因此并发的g
对象和线程一样多——尽管每个线程只能看到自己的对象。在大多数情况下,我怀疑应该只有一个app
对象,即程序员创建的Flask()类的实例,即app = Flask(__name__)
或类似对象。在Blueprints和Application Dispatching是拥有“多个”应用程序对象的两种方式,只要您有多个应用程序并发运行。在
相关问题 更多 >
编程相关推荐