class MySQLAPI(object): """ MySQL API Usage: client = MySQLAPI( host='127.0.0.1', port=3306, user='******', password='******', db='your-database-name') client.connect() result = client.query('select * from table_a') """ __connected = False def __init__(self, host, port, user, password, db, timeout=3): self.__host = host self.__user = user self.__password = password self.__db = db self.__port = port self.__timeout = timeout def connect(self): try: self.__connect = Connection(host=self.__host, user=self.__user, passwd=self.__password, db=self.__db, port=self.__port, connect_timeout=self.__timeout) self.__cursor = self.__connect.cursor(DictCursor) self.__connected = True except Exception as e: raise MySQLAPIException(e) # connection status for etcd def is_connect(self): return self.__connected # check connection status for etcd def __checkStatus__(self): if not self.is_connect(): raise MySQLAPIException('Database NOT Connected') def __del__(self): try: if self.is_connect(): self.__cursor = None self.__connect.close() self.__connected = False except Exception as e: raise MySQLAPIException(e) @db_check_connect def query(self, sql): try: self.__cursor.execute(sql) return self.__cursor.fetchall() except Exception as e: raise MySQLAPIException(e)