def query(self,stmt='') : db_session = db.get_session(self.db_name) resp = '' fields = None if len(stmt) > 0 : if any([k in stmt.lower() for k in ('update','insert','delete')]) : resp = 'illegal SQL statment' else : try : fields = re.search('select(.*?)from',stmt.lower()).group(1) fields = [f.strip() for f in fields.split(',')] recs = db_session.query(*fields).from_statement(stmt) resp = [dict((f,getattr(r,f)) for f in fields) for r in recs] except Exception, e : cherrypy.log('exception: %s'%e) resp = str(e.args)
def __init__(self) : # get a database connection and look for genes self.db_name = db_name = resource_filename('adipo_sight','data/adipo_sight.db') cherrypy.log('loading db session from %s'%self.db_name) self.db_session = db.get_session(db_name) loader = PackageLoader('adipo_sight','data/tmpl') self.template_env = Environment(loader=loader) self.template_env.filters['dictofdictsort'] = dictofdictsort self.template_env.globals['repr'] = repr self.template_env.globals['zip'] = zip self.args = {} self.threads = defaultdict(AdipoThread) self.sessions = MySessions()
def f(self,*args) : try : self.db_session.query(db.RegionSet).first() # this will fail if the session is invalid except : self.db_session = db.get_session(self.db_name) return fn(self,*args)