Ir al contenido principal

Primeras pruebas con BD y Logout

Hoy se empezó a jugar un poco con la base de datos, creamos una base de datos de prueba junto con una tabla de prueba, esta tabla esta basada en la de empleados, además realizamos el metodo de cerrar sesión en la pagina.

Pruebas con BD:


Para realizar la conexión con la base de datos estamos usando una librería de python llamada 'pyodbc', esta nos permite conectarnos al servidor y a las distintas bases de datos SQL

antes de realizar la conexión mediante código cree dos filas en la tabla de prueba, se muestran a continuación

La conexión con la BD se hace de la siguiente forma:

#hacemos una coneccion on la base de datos
conn = pyodbc.connect(
    "Driver={SQL Server};"
    "Server=OSWALDO\SQLEXPRESS;"
    "Database=Prueba1;"
    "Trusted_Connection=yes;"
)


Donde server es el nombre del servidor, Database el nombre de la base de datos, y Trusted_Connection significa que usamos la autenticación de windows.

Luego de esto se empezó a hacer las procedimientos para poder mostrar, insertar, editar y eliminar, todo esto se realizó con la ayuda del siguiente tutorial:


A continuación se muestra el código de todo esto, algunas lineas fueron modificadas en el blog para que no se salieran de la pagina, estas se identifican con un -cl-:

#leemos una tabla
def read(conection):
    print("read")
    cursor = conection.cursor()
    cursor.execute("SELECT * FROM [dbo].[Test_1]")
    for row in cursor:
        print(row)
    print()

#creamos un elemento en la tabla
def create(conection):
    print("create")
    cursor = conection.cursor()
    cursor.execute(
        "INSERT INTO [dbo].[Test_1] (Nombre, IdTipoIdentificacion -cl-
        ,ValorDocumentoIdentificacion, IdDepartamento, Puesto, FechaNacimiento) -cl-
        values(?,?,?,?,?,?)",
        ("Antonio Fronteras",2 ,123456,5"Jefe de cuidado del cabello","1975-5-10")
    )
    conection.commit()
    read(conection)
    print()

#modificamos un elemento en la tabla
def update(conection):
    print("update")
    cursor = conection.cursor()
    cursor.execute(
        "UPDATE [dbo].[Test_1] SET Nombre = ? WHERE Nombre = ?",
        ("Figeruno fugofugo","Antonio Fronteras")
    )
    conection.commit()
    read(conection)
    print()

#eliminamos un elemento en la tabla
def delete(conection):
    print("delete")
    cursor = conection.cursor()
    cursor.execute(
        "DELETE FROM [dbo].[Test_1] WHERE Id > 2"
    )
    conection.commit()
    read(conection)
    print()

De momento todo esto está puesto a la chanchada y se hace lo mismo siempre, pero esto fue hecho para empezar a probar el funcionamiento y prepararnos para a la hora de tener que hacer la base de datos y las conexiones finales, y no hacer prototipos de camino, se muestran las salidas al ejecutar las funciones:

read
(1, 'Juanito Valderrama', 3, 123344555, 7, 'Electricista', '1998-05-10')
(2, 'Pepito Pepote', 1, 402560325, 3, 'Operador de Maquina', '2001-09-15')

create
read
(1, 'Juanito Valderrama', 3, 123344555, 7, 'Electricista', '1998-05-10')
(2, 'Pepito Pepote', 1, 402560325, 3, 'Operador de Maquina', '2001-09-15')
(15, 'Antonio Fronteras', 2, 123456, 5, 'Jefe de cuidado del cabello', '1975-5-10')


update
read
(1, 'Juanito Valderrama', 3, 123344555, 7, 'Electricista', '1998-05-10')
(2, 'Pepito Pepote', 1, 402560325, 3, 'Operador de Maquina', '2001-09-15')
(15, 'Figeruno fugofugo', 2, 123456, 5, 'Jefe de cuidado del cabello', '1975-5-10')


delete
read
(1, 'Juanito Valderrama', 3, 123344555, 7, 'Electricista', '1998-05-10')
(2, 'Pepito Pepote', 1, 402560325, 3, 'Operador de Maquina', '2001-09-15')



Algo que he notado es que la primary key sigue aumentando sin importar que hayamos borrado los elementos anteriores, no se si esto es bueno o malo, pero aun así voy a investigar al respecto sobre una solución


Logout


Se realizó el botón de cerrar sesión, este borra todos los registros de sesión que se encuentran en memoria, además de esto en cada pagina de la pagina web se hace una verificación sobre si se encuentra la sesión iniciada, en caso contrario volvemos a la pantalla de inicio de sesión

Se muestra una confirmación al cerrar sesion






-Oswaldo (5 hrs )



Comentarios

Entradas populares de este blog

TAREA 3

Cantidad de horas trabajadas: Oswaldo: 26 Jenaro: 26 Debido a la elaboración de la tercera tarea programada podemos concluir que: Se tiene un mejor conocimiento y una mejor practica en la elaboración de una base de datos Aprendimos sobre leer archivos XML en SQL Server y como añadir los datos del XML a las tablas respectivas de la base de datos, sobre como modificar estos archivos, y como "jugar" con estos Se instruyo  la elaboración de una pagina web utilizando HTML y Python, usando la librería de Flask y el framework de Bootstrap y conectar la pagina web con la base de datos para poder añadir, editar, buscar y eliminar datos en la página web y que estos procesos se reflejen en la base de datos Se tiene un mejor conocimiento en la creación de vistas, manejo de errores y uso de transacciones Análisis de resultados: En general nos sentimos bastante orgullosos del trabajo realizado, tanto en la pagina como en la base de datos implementamos todas las funcionalidades, el programa...

Casi Finalización de la Pagina Web y Placeholders para Conexión con la BD

Esta ultima semana fue dedicada a la casi completa finalización de la pagina web del sistema de administración, todas las partes que faltaban de implementar están listas, además se realizo una conexión con la parte de datos de forma provisional, a continuación se hace un resumen de lo realizado: La opción de listar empleados  fue mejorada con iconos para editar y eliminar, aunque de momento debido al no tener una BD real estos no hacen nada. Edición de empleado y puesto fue mejorada drásticamente, con sus datos tomados de un catalogo y siendo mostrados en forma de drop menu, además la inserción de la fecha de nacimiento se hace mediante un calendario, por lo que de esta forma es imposible que se inserten datos no validos o en el formato incorrecto. Respecto a lo que mencioné anteriormente de los iconos de editar y borrar, hay una implementación básica realizada: En la lista de puestos si se seleccionan estos iconos, nos en...

Últimos 2 días de trabajo

Los últimos 2 días de trabajo, correspondientes al jueves 15 y viernes 16, fueron los días mas productivos que hemos tenido. La pagina web fue finalizada su totalidad, esto correspone a cambios esteticos minimos y la creacion de un menú de ajustes, se creó la BD con sus respectivas tablas, y se hicieron los stored procedures para conectar todo, además se finalizó el parseo de los archivos xml. Respecto a la creación de los procedures para hacer los CRUD, no hubo muchas complicaciones, como ya antes habíamos hecho pruebas con una Bd de prueba, crear las versiones finales de los procedures se redujo a simplemente crearlos siguiendo la plantilla dada por el profesor, e ir modificándolos según cada tabla. se puede ver nuestro repositorio de GitHub para notar que prácticamente ya son creadas en sus versiones finales, y son modificadas solo para hacer correcciones menores. La lectura de los xml si tuvo varios problemas, si bien la version creada pot el compañero era perfectamente funcional, ...