Example #1
0
    def crearEntidadesSQL(self):
        for entidad in self.datos["@graph"]:
            try:
                identificador = entidad["id"]
                nombre = entidad["title"].replace("'", " ")
                descripcion = entidad["organization"]["organization-desc"]
                servicios = entidad["organization"]["services"]
                coordenadas = entidad["location"]
                urlInfo = entidad["relation"]
                distrito = entidad["address"]["district"]["@id"].rsplit(
                    "/", 1)[-1]
                barrio = entidad["address"]["area"]["@id"].rsplit("/", 1)[-1]
                horario = entidad["organization"]["schedule"]
                calleNumero = entidad["address"]["street-address"]
                codigoPostal = entidad["address"]["postal-code"]
                municipio = entidad["address"]["locality"]

                nuevaEntidad = Entidad(identificador, nombre, descripcion,
                                       servicios, coordenadas, urlInfo,
                                       distrito, barrio, horario, calleNumero,
                                       codigoPostal, municipio)
                self.crearModificarDB(
                    f'INSERT INTO "entidades" VALUES({identificador}, "{nombre}", "{descripcion}", "{servicios}", "{coordenadas}", "{urlInfo}", "{distrito}", "{barrio}", "{horario}", "{calleNumero}", "{codigoPostal}", "{municipio}");'
                )

            except KeyError:
                logSystem.log("INFO", f"{KeyError}")

        logSystem.log("INFO", "Entidades creadas con éxito")
Example #2
0
    def crearModificarDB(self, consulta="", crear=False):
        '''
        Permite consultar o crear la base de datos del proyecto.

        Parámetros:
        consulta (default:""): Consulta SQL a realizar;
        crear (default: False): Con valor "True" permite crear una base de datos a partir del archivo "basededatos_esquema.sql"
        '''
        conexion = sqlite3.connect(nombreBD)
        cursor = conexion.cursor()

        if crear:
            with sqlite3.connect(nombreBD) as conexion:
                with open(esquemaDB, "rt") as ficheroSQL:
                    esquemaScript = ficheroSQL.read()
                    conexion.executescript(esquemaScript)

            logSystem.log("INFO", f"Creada Base de datos ' { nombreBD }'.")

        else:
            cursor.execute(consulta)
            conexion.commit()
            conexion.close()
            logSystem.log("INFO",
                          f"Consulta { consulta }' realizada con éxito.")
Example #3
0
 def consultarDB(self, consulta):
     conexion = sqlite3.connect(nombreBD)
     cursor = conexion.cursor()
     cursor.execute(consulta)
     salida = cursor.fetchall()
     conexion.close()
     logSystem.log("INFO", f"Consulta { consulta }' realizada con éxito.")
     return salida
Example #4
0
 def getUsuario(self, correoElectronico):
     usuario = self.consultarDB(
         f'SELECT * FROM usuarios WHERE correoElectronico = "{ correoElectronico };"'
     )
     if usuario:
         logSystem.log("INFO",
                       f"Usuario { usuario } existe en la base de datos.")
         return usuario
     else:
         logSystem.log(
             "INFO", f"Usuario { usuario } NO existe en la base de datos.")
         return None
Example #5
0
    def obtenerDatos(self):
        try:
            with urllib.request.urlopen(
                    Request(self.url, headers={'User-Agent':
                                               'Mozilla/5.0'})) as urlJSON:
                self.datos = json.loads(urlJSON.read().decode())
                logSystem.log("INFO", "Datos de la API descargados con éxito.")

        except ValueError:
            logSystem.log("WARNING", f"Error al descargar el recurso '{url}'.")

        return self.datos
Example #6
0
from models.gestorDeDatos import GestorDeDatos
from models.formularios import Busqueda, LoginApp, FormularioRegistro

app = Flask(__name__)
app.config['SECRET_KEY'] = os.getenv("SECRET_KEY")
login_manager = LoginManager(app)

guiaSocial = GestorDeDatos(
    "http://datos.madrid.es/egob/catalogo/212774-0-atencion-social.json")

if not os.path.exists(nombreBD):
    print("Creando Base de datos.")
    guiaSocial.crearModificarDB("", True)
    guiaSocial.crearEntidadesSQL()
    print("Base de datos creada con éxito")
    logSystem.log("INFO",
                  "Programa arrancado. Creada y actualizada base de datos.")
else:
    logSystem.log("INFO",
                  "Programa arrancado. No es necesario crear base de datos")


@login_manager.user_loader
def cargar_usuario(id):
    usuario = guiaSocial.consultarDB(
        f"SELECT * FROM usuarios WHERE ID = '{ id }'")
    if usuario:
        return usuario
    else:
        return None