Skip to content

Instantly share code, notes, and snippets.

@b1oki
Created July 28, 2016 16:23
Show Gist options
  • Save b1oki/20fbf5d87e6b70dfc6650a67d2fb0f5f to your computer and use it in GitHub Desktop.
Save b1oki/20fbf5d87e6b70dfc6650a67d2fb0f5f to your computer and use it in GitHub Desktop.
class Database(object):
db = None
def __init__(self):
self.db = MySQLdb.connect(host=os.environ.get('OPENSHIFT_MYSQL_DB_HOST'),
port=os.environ.get('OPENSHIFT_MYSQL_DB_PORT'),
user=os.environ.get('OPENSHIFT_MYSQL_DB_USERNAME'),
passwd=os.environ.get('OPENSHIFT_MYSQL_DB_PASSWORD'),
db="alexander",
charset='utf8')
self.__create_tables()
def __del__(self):
self.db.close()
def _get_cursor(self):
return self.db.cursor()
def __create_tables(self):
self.sql('''CREATE TABLE IF NOT EXISTS USERS (
ID INTEGER AUTO_INCREMENT NOT NULL,
LOGIN VARCHAR(32) NOT NULL,
PASSWORD CHAR(32) NOT NULL,
) CHARACTER SET=UTF8;''')
self.sql('''CREATE TABLE IF NOT EXISTS MESSAGES (
ID INTEGER AUTO_INCREMENT NOT NULL,
TEXT VARCHAR(255) NOT NULL,
AUTHOR_ID INTEGER NOT NULL,
DATE_CREATED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY(ID),
FOREIGN KEY(AUTHOR_ID) REFERENCES USERS(ID)
ON UPDATE CASCADE
ON DELETE RESTRICT
) CHARACTER SET=UTF8;''')
def sql(self, query):
cursor = self._get_cursor()
cursor.execute(query)
self.db.commit()
data = cursor.fetchall()
cursor.close()
return data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment