Advertisement
Guest User

Untitled

a guest
Sep 8th, 2017
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.15 KB | None | 0 0
  1. ##################################
  2. #in separate module
  3.  
  4. from sqlalchemy.engine.url import URL
  5. from sqlalchemy.ext.sqlsoup import SqlSoup
  6. import sqlalchemy as sa
  7.  
  8. class SQLAlchemyTablesDict(object):
  9.     drivermap = {
  10.         "sqlite3": "sqlite",
  11.             "postgresql_psycopg2": "postgres",
  12.             "mysql": "mysql",
  13.     }
  14.    
  15.     def __init__(self, drivername, username=None, password=None, host=None, port=None, database=None, query=None):
  16.         url = URL(SQLAlchemyTablesDict.drivermap[drivername], username=username, password=password, host=host, port=None, database=database, query=query)
  17.             self.engine = sa.create_engine(url)
  18.             self._soup = SqlSoup(self.engine)
  19.    
  20.     def __getitem__(self, key):
  21.             mapped = self._soup.__getattr__(key)
  22.             return mapped._table
  23.  
  24.  
  25. ##################################
  26. #in settings.py
  27.  
  28. SA_TABLES = SQLAlchemyTablesDict(DATABASE_ENGINE, username=DATABASE_USER, password=DATABASE_PASSWORD, host=DATABASE_HOST, port=DATABASE_PORT, database=DATABASE_NAME)
  29.  
  30. ##################################
  31. #in dao module
  32.  
  33. def my_dao_fun(par1):
  34.     mytable = SA_TABLES["myapp_mytable"]
  35.     conn = SA_TABLES.engine.connect()
  36.     #...do query
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement