Skip to content

Instantly share code, notes, and snippets.

@iamsk
Created September 2, 2014 12:16
Show Gist options
  • Save iamsk/523dca100e6555678fbc to your computer and use it in GitHub Desktop.
Save iamsk/523dca100e6555678fbc to your computer and use it in GitHub Desktop.
import sqlsoup
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
def singleton(cls, *args, **kwargs):
instances = {}
def get_instance():
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
return instances[cls]
return get_instance
@singleton
class Engine(object):
def __new__(cls, *args, **kwargs):
config = {
'host': 'localhost',
'database': 'demo',
'username': 'root',
'password': '123456',
}
_tpl = 'mysql://{username}:{password}@{host}/{database}?charset=utf8'
connect_url = _tpl.format(**config)
engine = create_engine(connect_url,
strategy='threadlocal',
pool_size=5,
pool_recycle=1800,
encoding='utf-8',
max_overflow=2)
return engine
db = sqlsoup.SQLSoup(Engine(), session=scoped_session(sessionmaker(autoflush=False,
expire_on_commit=False,
autocommit=True)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment