我遵循金字塔食谱说明MongoDB and Pyramid,但似乎链接数据库查询request.db
,我只能从我的意见。 如何打开可以从类方法内部调用的连接?如何访问金字塔视图之外的MongoDB连接?
我想为我的项目中的对象设置一个真正的准系统序列化程序。我在我的resources/
文件夹中有许多类定义来处理我的项目数据。我想给每个这些对象自包含.save()
和.find()
方法(类似于mongoengine
),它会将对象的数据转换为字典并使用pymongo
将该字典保存到MongoDB。
使用pymongo
很容易打开到MongoDB的连接。你所要做的就是使用MongoClient
。问题是我不想在每次实例化对象或调用类时都打开一个新连接。我想要在蛋的main()
函数中创建一个连接,然后我可以在需要时访问它(就像视图中的request.db
一样)。
很显然,我是金字塔全新的,所以任何帮助表示赞赏。提前致谢。
请注意,当线程开始时,这种方法可能会以不可预知的方式破坏,您想要使用threadlocal对象。 Cookbook的答案要好得多,这要求你将请求传递给你的模型,但是在大多数情况下这不是问题,并且增加了可测试性。 – 2015-02-26 03:56:23
pymongo的MongoClient是线程安全的,充当现实中的连接池。 [链接](http://api.mongodb.org/python/current/faq.html#how-does-connection-pooling-work-in-pymongo) – 2015-02-27 08:41:24