drogon/core/mysql_wrapper.py

71 lines
2.6 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
import mysql.connector
from core.alerts import alert_master
anuncios_db_parameters = {'host': '185.166.215.170',
'database': 'anuncios',
'user': 'drogon',
'password': 'noesfacilvivirsindrogon'}
tasks_db_parameters = {'host': '185.166.215.170',
'database': 'tasks',
'user': 'drogon',
'password': 'noesfacilvivirsindrogon'}
class DatabaseWrapper():
def __init__(self, connection_parameters):
self.host = connection_parameters['host']
self.database = connection_parameters['database']
self.user = connection_parameters['user']
self.password = connection_parameters['password']
self.connection = None
self.ping()
def connect(self):
self.connection = mysql.connector.connect(host = self.host,
database = self.database,
user = self.user,
password = self.password,
autocommit = True)
def disconnect(self):
if self.connection.is_connected():
self.connection.disconnect()
def ping(self):
self.connect()
self.disconnect()
def query(self, query_statement, query_parameters=None, dictionary=False):
self.connect()
if self.connection.is_connected():
try:
execution_cursor = self.connection.cursor(dictionary = dictionary)
execution_cursor.execute(query_statement, query_parameters)
self.disconnect()
return execution_cursor
except:
alert_master("SQL ERROR", """Se ha producido un error ejecutando la
siguiente query: %s.
Con los siguientes parametros: %s
""".format(query_statement,
query_parameters))
else:
raise Exception("Could not connect to the database.")
def query_dict(self, query_statement, query_parameters = None):
return self.query(query_statement, query_parameters, dictionary = True)
def get_anunciosdb():
return DatabaseWrapper(anuncios_db_parameters)
def get_tasksdb():
return DatabaseWrapper(tasks_db_parameters)