Skip to content

Python Capa de Datos Parte 3

Renzo Espinola edited this page Jun 8, 2023 · 5 revisions

Capa de Datos Parte 3

Gutierrez, Agustin Rene

Clase: persona_dao.py

ClassMethod: seleccionar

En esta documentación, se especifica que el método seleccionar es un método de clase que realiza una selección de registros utilizando una conexión y un cursor obtenidos de la clase Conexion. Luego, el método ejecuta una consulta utilizando el atributo _SELECCIONAR de la clase actual (cls) y recupera todos los registros utilizando el método fetchall() del cursor.

Después, se crea una lista vacía llamada personas para almacenar los objetos Persona. Luego, se itera sobre los registros obtenidos y se crea un objeto Persona para cada registro utilizando los valores de las posiciones [0], [1], [2] y [3]. Estos valores representan los diferentes campos de cada registro.

Finalmente, se agrega cada objeto Persona a la lista personas y se retorna la lista completa.

Recuerda que esta documentación asume que hay definiciones adecuadas para la clase Persona y la clase Conexion, incluyendo los métodos obtenerConexion() y obtenerCursor().

Codigo seleccionar:

@classmethod 
def seleccionar(cls):
    with Conexion.obtenerConexion():
       with Conexion.obtenerCursor() as cursor:
           cursor.execute(cls._SELECCIONAR)
           registros = cursor.fetchall()
           personas = []  # creamos una lista
           for registro in registros:
               persona = Persona(registro[0], registro[1], registro[2], registro[3])
               personas.append(persona)
           return personas

Prueba:

Este código verifica si el archivo actual es el archivo principal que se está ejecutando. Si es así, ejecuta el bloque de código dentro del condicional if.

El código realiza las siguientes acciones:

Llama al método seleccionar() de la clase PersonaDAO para obtener una lista de objetos Persona. Itera sobre la lista de personas. Para cada persona en la lista, registra la información de depuración (debug) de la persona utilizando el objeto log. Ten en cuenta que la documentación proporcionada asume la existencia de una instancia del objeto log y una implementación adecuada de las clases PersonaDAO y Persona en el código o en otros archivos. Asegúrate de proporcionar definiciones y detalles adicionales en tu código para una documentación más completa y precisa.

Codigo prueba seleccionar:

if __name__ == '__main__':
# Seleccionar objetos
personas = PersonaDAO.seleccionar()
for persona in personas:
    log.debug(persona)

Balbuena, Nicolas Fernando

ClassMethod: insertar

En esta documentación, se especifica que el método insertar es un método de clase que inserta un objeto Persona en una base de datos utilizando una conexión y un cursor obtenidos de la clase Conexion.

El método toma un argumento persona que representa el objeto Persona que se va a insertar en la base de datos.

Dentro del método, se utiliza una sentencia with para obtener una conexión a la base de datos utilizando el método obtenerConexion() de la clase Conexion. Luego, se utiliza otra sentencia with para obtener un cursor utilizando el método obtenerCursor().

Se crea una tupla llamada valores que contiene los atributos nombre, apellido y email del objeto persona.

Después, se ejecuta la sentencia cursor.execute(cls._INSERTAR, valores) para ejecutar la consulta de inserción utilizando el atributo _INSERTAR de la clase actual (cls) y los valores de valores.

A continuación, se registra información de depuración (debug) utilizando el objeto log, indicando que se ha insertado la persona.

Finalmente, se retorna el número de filas afectadas por la inserción utilizando cursor.rowcount.

Recuerda que esta documentación asume la existencia de una definición adecuada para la clase Persona, la clase Conexion y el objeto log.

Codigo insertar:

@classmethod
def insertar(cls, persona):
    with Conexion.obtenerConexion():
        with Conexion.obtenerCursor() as cursor:
            valores = (persona.nombre, persona.apellido, persona.email)
            cursor.execute(cls._INSERTAR, valores)
            log.debug(f'Persona Insertada: {persona}')
            return cursor.rowcount

Prueba insertar:

Este código verifica si el archivo actual es el archivo principal que se está ejecutando. Si es así, ejecuta el bloque de código dentro del condicional if.

El código realiza las siguientes acciones:

Crea un objeto Persona llamado persona1 con nombre, apellido y email especificados. Llama al método insertar() de la clase PersonaDAO pasando persona1 como argumento para insertar el objeto persona1 en la base de datos. Registra información de depuración (debug) utilizando el objeto log, indicando el número de personas insertadas en la base de datos.

Codigo prueba insertar:

if __name__ == '__main__':
# Insertar un registro
   persona1 = Persona(nombre='Omero', apellido='Ramos', email='omeror@gmail.com')
   personas_insertadas = PersonaDAO.insertar(persona1)
   log.debug(f'Personas Insertadas: {personas_insertadas}')

Valladares, Juan Ignacio

ClassMethod: actualizar

En esta documentación, se especifica que el método actualizar es un método de clase que actualiza un objeto Persona en una base de datos utilizando una conexión y un cursor obtenidos de la clase Conexion.

El método toma un argumento persona que representa el objeto Persona que se va a actualizar en la base de datos.

Dentro del método, se utiliza una sentencia with para obtener una conexión a la base de datos utilizando el método obtenerConexion() de la clase Conexion. Luego, se utiliza otra sentencia with para obtener un cursor utilizando el método obtenerCursor().

Se crea una tupla llamada valores que contiene los atributos nombre, apellido, email y id_persona del objeto persona.

Después, se ejecuta la sentencia cursor.execute(cls._ACTUALIZAR, valores) para ejecutar la consulta de actualización utilizando el atributo _ACTUALIZAR de la clase actual (cls) y los valores de valores.

A continuación, se registra información de depuración (debug) utilizando el objeto log, indicando que se ha actualizado la persona.

Finalmente, se retorna el número de filas afectadas por la actualización utilizando cursor.rowcount.

Recuerda que esta documentación asume la existencia de una definición adecuada para la clase Persona, la clase Conexion y el objeto log.

Codigo actualizar:

@classmethod
def actualizar(cls, persona):
    with Conexion.obtenerConexion():
        with Conexion.obtenerCursor() as cursor:
            valores = (persona.nombre, persona.apellido, persona.email, persona.id_persona)
            cursor.execute(cls._ACTUALIZAR, valores)
            log.debug(f'Persona actualizada:{persona}')
            return cursor.rowcount

Prueba actualizar:

Este código verifica si el archivo actual es el archivo principal que se está ejecutando. Si es así, ejecuta el bloque de código dentro del condicional if.

El código realiza las siguientes acciones:

Crea un objeto Persona llamado persona1 con el id_persona y los datos actualizados especificados. Llama al método actualizar() de la clase PersonaDAO pasando persona1 como argumento para actualizar el registro correspondiente en la base de datos. Registra información de depuración (debug) utilizando el objeto log, indicando el número de personas actualizadas en la base de datos.

Codigo Prueba actualizar:

if __name__ == '__main__':
# Actualizar un registro
  persona1 = Persona(4, 'Juan José', 'Pena', 'jjpena@mail.com')
  personas_actualizadas = PersonaDAO.actualizar(persona1)
  log.debug(f'Personas actualizadas: {personas_actualizadas}')

Gimenez Rios, Tatiana Tamara

ClassMethod: eliminar

En esta documentación, se especifica que el método eliminar es un método de clase que elimina un objeto Persona de una base de datos utilizando una conexión y un cursor obtenidos de la clase Conexion.

El método toma un argumento persona que representa el objeto Persona que se va a eliminar de la base de datos.

Dentro del método, se utiliza una sentencia with para obtener una conexión a la base de datos utilizando el método obtenerConexion() de la clase Conexion. Luego, se utiliza otra sentencia with para obtener un cursor utilizando el método obtenerCursor().

Se crea una tupla llamada valores que contiene el id_persona del objeto persona.

Después, se ejecuta la sentencia cursor.execute(cls._ELIMINAR, valores) para ejecutar la consulta de eliminación utilizando el atributo _ELIMINAR de la clase actual (cls) y los valores de valores.

A continuación, se registra información de depuración (debug) utilizando el objeto log, indicando el objeto persona que ha sido eliminado.

Finalmente, se retorna el número de filas afectadas por la eliminación utilizando cursor.rowcount.

Codigo Eliminar:

@classmethod
def eliminar(cls, persona):
    with Conexion.obtenerConexion():
        with Conexion.obtenerCursor() as cursor:
            valores = (persona.id_persona,)
            cursor.execute(cls._ELIMINAR, valores)
            log.debug(f'Los objetos eliminados  son: {persona}')
            return cursor.rowcount

Prueba eliminar:

Este código verifica si el archivo actual es el archivo principal que se está ejecutando. Si es así, ejecuta el bloque de código dentro del condicional if.

El código realiza las siguientes acciones:

Crea un objeto Persona llamado persona1 con el id_persona especificado. Llama al método eliminar() de la clase PersonaDAO pasando persona1 como argumento para eliminar el registro correspondiente en la base de datos. Registra información de depuración (debug) utilizando el objeto log, indicando el número de personas eliminadas en la base de datos.

Codigo prueba eliminar:

if __name__ == '__main__':
# Eliminar un registro
   persona1 = Persona(id_persona=6)
   personas_eliminadas = PersonaDAO.eliminar(persona1)
   log.debug(f'Personas eliminadas: {personas_eliminadas}')

GIT URL: https://github.com/CodeSystem2022/chacoDevsTeam-3Semestre/blob/main/PYTHON/Leccion07/capa_datos_persona/persona_dao.py

Clone this wiki locally