Согласно документации pymongo,
PyMongo is thread-safe and even provides built-in connection pooling for threaded applications.
Обычно я запускаю свое соединение с mongodb следующим образом:
import pymongo
db = pymongo.Connection()['mydb']
, а затем я могу использовать его как db.users.find{'name': ..}) ...
Значит ли это, что я могу поместить две строки в lib / apps_global.py, например:
class Globals(object):
def __init__(self, config):
self.cache = CacheManager(**parse_cache_config_options(config))
import pymongo
self.db_conn = pymongo.connection()
self.db = self.db_conn['simplesite']
, а затем вмой базовый контроллер:
class BaseController(WSGIController):
def __call__(self, environ, start_response):
"""Invoke the Controller"""
# WSGIController.__call__ dispatches to the Controller method
# the request is routed to. This routing information is
# available in environ['pylons.routes_dict']
ret = WSGIController.__call__(self, environ, start_response)
# Don't forget to release the thread for mongodb
app_globals.db_conn.end_request()
return ret
И начать вызывать переменную db app_global во всех моих контроллерах?Я надеюсь, что это действительно так просто.