drogon/core/mysql_wrapper.py
pablomartincalvo 4edff2e0c1 Siguen los retoques. Tests locales exitosos, listo para mover a entorno
de pruebas y dejar corriendo junto a explorer.
2018-10-13 17:45:42 +02:00

74 lines
No EOL
2.7 KiB
Python

# -*- 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 Exception as e:
alert_master("SQL ERROR", """Se ha producido un error ejecutando la
siguiente query: {}.
Con los siguientes parametros: {}
{}
""".format(query_statement,
query_parameters,
e))
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)