Skip to content

Instantly share code, notes, and snippets.

Created July 15, 2013 03:36

Revisions

  1. @invalid-email-address Anonymous created this gist Jul 15, 2013.
    70 changes: 70 additions & 0 deletions my_db_utils.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,70 @@
    from sqlalchemy import *
    from sqlalchemy.orm import *
    import os
    from datetime import datetime

    from MyProject.utils.my_models import MyTable


    DB_HOST = 'mygeniusdomain.com'
    DBMS = 'mysql'
    DB_PORT = '3306'
    DB_NAME = 'my_table'
    DB_USER = 'genius'
    DB_PWD = 'MyP@ssw0rd'

    DB_ENGINE_URL = '%s://%s:%s@%s:%s/%s' % (DBMS, DB_USER, DB_PWD, DB_HOST,\
    DB_PORT, DB_NAME)

    # moodle database connect
    class MyDBUtil(object):
    engine = None
    Session = None

    def __init__(self):
    self.connect()

    def connect(self):
    if self.engine is None:
    self.engine = create_engine(DB_ENGINE_URL, echo=False, \
    pool_size = 100, pool_recycle=3600)

    if self.Session is None:
    self.Session = scoped_session(sessionmaker(bind=self.engine))

    def get_session(self):
    self.connect()
    return self.Session()

    def close(self):
    self.Session.remove()



    def get_data(db, name):
    data = ''
    session = db.get_session()
    try:
    data = session.query(MyTable).filter_by(name=name).first().value
    except:
    session.rollback()
    raise
    finally:
    session.commit()
    db.close()

    return data


    def set_data(db, name, value):
    session = db.get_session()
    try:
    record = session.query(MyTable).filter_by(name=name).first()
    except:
    record = MyTable(name=name, value=value)
    session.add(record)
    else:
    record.value = value
    finally:
    session.commit()
    db.close()