Flask 为请求、会话和一个额外对象(你可以在 g 上放置自己的东
西)使用线程局域对象(实际上是上下文局域对象,它们也支持 greenlet 上下文)。
为什么是这样,这不是一个坏主意吗?
是的,通常情况下使用线程局域变量不是一个明智的主意。它们在不基于线程概念的
服务器上会导致问题,并且使得大型应用难以维护。但 Flask 不仅为大型应用或异步
服务器设计。 Flask 想要使得编写一个传统 web 应用的过程快速而简单。
一些关于基于 Flask 大型应用的灵感,见文档的 聚沙成塔 一节。