From dc9c5ef13739d8c0da95de8438c03fdd517b2d05 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Thu, 31 Dec 2015 21:39:27 -0600 Subject: [PATCH] web: Add base controllers --- src/rouse/web/controllers.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/rouse/web/controllers.py diff --git a/src/rouse/web/controllers.py b/src/rouse/web/controllers.py new file mode 100644 index 0000000..90dc30e --- /dev/null +++ b/src/rouse/web/controllers.py @@ -0,0 +1,26 @@ +from __future__ import unicode_literals +from . import model +import milla.controllers +import sqlalchemy + + +# pylint: disable=too-few-public-methods + +class SQLAlchemyController(milla.controllers.Controller): + + def __before__(self, request): + super(SQLAlchemyController, self).__before__(request) + request.db = model.Session( + bind=sqlalchemy.engine_from_config(request.config, 'sqlalchemy.'), + ) + + def __after__(self, request): + super(SQLAlchemyController, self).__after__(request) + if hasattr(request, 'db') and request.db: + request.db.close() + del request.db + + +class BaseController(milla.controllers.HTTPVerbController, + SQLAlchemyController): + pass