2

看起来这就是例如 MongoEngine 所做的。目标是让模型文件能够访问数据库,而无需显式传递上下文。

4

1 回答 1

2

金字塔与它无关。全局需要处理 WSGI 服务器用于为您的应用程序提供服务的任何机制。

例如,大多数服务器每个请求使用一个单独的线程,因此您的全局变量需要是线程安全的。gunicorn 和 gevent 使用 greenlets 提供服务,这是一种不同的机制。

许多引擎/orms 支持线程本地连接。这将允许您访问您的连接,就好像它是一个全局变量一样,但它是每个线程中的不同变量。您只需确保在请求完成时关闭连接,以避免该连接溢出到同一线程中的下一个请求。这可以使用 Pyramid 补间或食谱中说明的其他几种模式轻松完成。

于 2012-06-06T01:32:47.043 回答