diff options
Diffstat (limited to 'app/backend/rcal/db.py')
-rw-r--r-- | app/backend/rcal/db.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/backend/rcal/db.py b/app/backend/rcal/db.py new file mode 100644 index 0000000..7e892a1 --- /dev/null +++ b/app/backend/rcal/db.py @@ -0,0 +1,34 @@ +import json +from os import path + +import sqlalchemy.engine.url as url +from sqlalchemy import create_engine +from sqlalchemy.orm import sessionmaker + + +class Session(object): + + engine = None + + def __init__(self): + config = json.load( + open(path.join(path.dirname( + path.realpath(__file__)), '..', 'config', 'db.json'))) + db_str = url.URL( + drivername=config['type'], + host=config['host'], + username=config['user'], + password=config['pass'], + database=config['name'], + query={'charset': config['cset']} + ) + self.engine = create_engine(db_str, encoding=config['cset']) + + def get_maker(self): + return sessionmaker(bind=self.engine) + + @staticmethod + def create(): + session = Session() + maker = session.get_maker() + return maker() |