继(和灵感)josephmosby的回答,我使用类似以下内容:
# project/settings
MONGO_DB = {
'default': {
'HOST': 'localhost',
'PORT': 27017
},
...
}
# project/__init__.py
gMongoClient = {}
# project/utils/mongo_tool.py
from project import gMongoClient
from project.settings import MONGO_DB
import pymongo
def get_mongo_db(dbname="default"):
if dbname in gMongoClient:
return gMongoClient[dbname]
if dbname in MONGO_DB:
with MONGO_DB[dbname] as config:
gMongoClient = pymongo.MongoClient(config["HOST"],
config["PORT"])
else:
gMongoClient[dbname] = None
return gMongoClient[dbname]
# .../view.py
from utils import mongo_tool
...
db = mongo_tool.get_mongo_db()
results = db["collection"].find(...)
这可以b e更漂亮,例如查看是否在特定连接的设置中指定了用户名和密码等,但以上内容捕捉到了这个想法的实质。
我会将它保存在Django应用程序中的'__init __。py'中。这样它就被实例化了一次。尽管我对你了解正确的程序同样感兴趣:) – shaktimaan 2014-08-28 18:56:52