diff options
Diffstat (limited to 'python/db.py')
| -rw-r--r-- | python/db.py | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/python/db.py b/python/db.py index ea3fed4e..760344f1 100644 --- a/python/db.py +++ b/python/db.py @@ -2,29 +2,33 @@ import psycopg2 from psycopg2.extras import DictCursor from psycopg2 import IntegrityError -conn = psycopg2.connect(database="ET", - user="et_user", +def dbconn(dbname): + if dbname == 'etdb': + dbname = 'ET' + user_name = 'et_user' + else: + user_name = dbname[:-2] + '_user' + return psycopg2.connect(database=dbname, + user=user_name, host="debian", cursor_factory=DictCursor) -serenitasdb = psycopg2.connect(database="serenitasdb", - user="serenitas_user", - host="debian", - cursor_factory=DictCursor) -def with_connection(f): - def with_connection_(*args, **kwargs): - # or use a pool, or a factory function... - try: - rv = f(conn, *args, **kwargs) - except Exception as e: - print(e) - conn.rollback() - else: - return rv - - return with_connection_ +def with_connection(dbname): + def decorator(f): + conn = dbconn(dbname) + def with_connection_(*args, **kwargs): + # or use a pool, or a factory function... + try: + rv = f(conn, *args, **kwargs) + except Exception as e: + print(e) + conn.rollback() + else: + return rv + return with_connection_ + return decorator -@with_connection +@with_connection('etdb') def query_db(conn, sqlstr, params=None, one=True): with conn.cursor() as c: if params: |
