【发布时间】:2019-02-25 17:06:45
【问题描述】:
根据Is it safe to store per-request data on flask.request? 中给出的答案,g 对象似乎是本地请求(= 具有单个请求的生命周期)。也许我误解了这个答案,但 Flask 文档指出 g 对象将是全局的,这似乎与这个答案相矛盾。
文档本身对这些细节有点短,所以请您介意向上下文和全局对象 g 解释细节吗?具体解决以下问题:
- 为了在单个请求的整个生命周期内存储数据,应该怎么做? (使用
request对象、g对象还是哪种对象?) - 为了在应用程序的整个生命周期中存储数据,应该怎么做? (使用
app对象、g对象还是哪种对象?) - Flask 可用于多进程环境。假设在这种操作模式下会有多个应用程序范围的对象是否正确? (这意味着所有这些
app或g对象都需要在每个工作进程的生命周期内单独初始化。) - 与问题 3 相关:如果我需要一个为 Flask Web 应用程序提供服务的应用程序范围的、类似单例的对象,是否必须将此服务分解到外部进程中? (在多进程操作模式中,不会有一个类似单例的实例?)
【问题讨论】: