我遵循金字塔食譜說明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