diff options
Diffstat (limited to 'src/lb_app/app_db/db.py')
-rw-r--r-- | src/lb_app/app_db/db.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/lb_app/app_db/db.py b/src/lb_app/app_db/db.py new file mode 100644 index 0000000..005599b --- /dev/null +++ b/src/lb_app/app_db/db.py @@ -0,0 +1,31 @@ +from flask import current_app, _app_ctx_stack +from flask_pymongo import PyMongo + +class MongoDB(object): + def __init__(self, app=None): + self.app = app + if app is not None: + self.init_app(app) + + def init_app(self, app): + app.teardown_appcontext(self.teardown) + + def connect(self): + return PyMongo(self.app, current_app.config['MONGO_URI']) + + + def teardown(self, exception): + ctx = _app_ctx_stack.top + if hasattr(ctx, 'mongo_db'): + ctx.mongo_db.cx.close() + + def connection(self): + ctx = _app_ctx_stack.top + if ctx is not None: + if not hasattr(ctx, 'mongo_db'): + ctx.mongo_db = self.connect() + return ctx.mongo_db + + def set_up(self): + mongo = PyMongo(self.app) + mongo.cx.drop_database("test_liberationCenter") |