2 de setiembre de 2022
Detalle de cambios
- Se hace una corrección de tipos de datos (de VARCHAR a NCHAR) en el script que genera el stored procedure de la inserción para evitar incompatibilidades.
- Se inició el servidor web con dos páginas diferentes: index.html (para la mayoría de las acciones) y login.html (para el inicio de sesión)
- Add basic server and HTML files · psluk/BD1TP1@c4eba7d (github.com)
- Fuentes:
- Installation — Flask Documentation (2.2.x) (palletsprojects.com): Para la instalación de la biblioteca que permite iniciar el servidor web local (Flask).
- Quickstart — Flask Documentation (2.2.x) (palletsprojects.com): Guía rápida sobre la librería, que permite hacer la mayoría de las cosas que se necesitan para esta tarea.
- Se empiezan a diseñar la página principal (donde se muestra la tabla de productos junto con los filtros) y la página de inicio de sesión a través del archivo index.html y un archivo CSS.
- A continuación, se listan las fuentes consultadas para la estructura del archivo HTML y para el archivo CSS.
- Adding CSS styling to your website (pythonhow.com): Guía para referenciar a un archivo CSS (de estilo) en un servidor web local de Python (con la biblioteca Flask).
- Declaring language in HTML (w3.org): Para saber dónde se declara el idioma de la página en un archivo HTML.
- How To Center an Element Vertically (w3schools.com): Para centrar verticalmente el título (solo se estaba centrando horizontalmente, pero quedaba muy arriba).
- Se quería hacer que, para los filtros, se mostrara el nombre del filtro (por ejemplo, «Nombre») arriba del cuadro de texto, y el botón a la derecha del cuadro de texto, como se muestra en la imagen adjunta.
- Conceptos Básicos de flexbox - CSS | MDN (mozilla.org): Se utilizó el concepto de flexbox, que permite distribuir más fácilmente los elementos en la interfaz. Además, esta guía ayudó con aspectos como el flujo de los datos (hacia la derecha o hacia abajo) y a definir cuánto espacio abarcaba cada elemento (para que el cuadro de texto abarque más que el botón del filtro).
- css - Flexbox: Have item expand to fill row - Stack Overflow: Para saber cómo hacer que el nombre del filtro se mostrara arriba del cuadro de texto y del botón (se estaban mostrando todos en la misma línea).
- CSS flex-wrap property (w3schools.com): Más información sobre esta propiedad de CSS, que se mencionó en la fuente anterior.
- html - Make a div fill the height of the remaining screen space - Stack Overflow: No se sabía cómo hacer que la tabla de artículos no se saliera de la página (es decir, que al hacer scroll solo se desplazara dentro de la tabla, no toda la página). Esta guía usó el concepto de flexbox nuevamente, así que también se volvieron a revisar las fuentes anteriormente mencionadas.
- Selectores de hijo - CSS | MDN (mozilla.org): Guía sobre cómo aplicar estilo a los hijos de un elemento HTML (se usa el selector ">").
- HTML input Tag - GeeksforGeeks: Guía sobre los distintos tipos de cuadros de texto, para saber cómo agregar áreas para solicitar la información para los filtros (más que todo para el tipo numérico).
- HTML input type="number" (w3schools.com): Información sobre un cuadro de entrada numérico (para que no deje ingresar texto, además de que permite indicar un máximo y un mínimo).
- HTML select tag (w3schools.com): Se estaba buscando cómo se implementaban en HTML las listas de selección (de estilo drop-down).
- CSS Is it possible to center table column? - Stack Overflow: Para saber cómo centrar los datos de las celdas de una sola columna.
- CSS: even and odd rules (w3.org): Para cambiar el color de solo columnas pares (o impares), para mejorar la legibilidad.
- W3Schools Tryit Editor: Para centrar elementos (la solución era simple: margin: auto;).
- Se empiezan a programar las funciones internas en el servidor de Python para procesar las solicitudes hechas desde un navegador. En este caso, para el inicio de sesión
- Fuentes:
- How to Process Requests in Flask – Predictive Hacks: Cómo procesar requests en Flask (la biblioteca de servidor web para Python).
- XMLHttpRequest - Referencia de la API Web | MDN (mozilla.org): Cómo hacer requests en Javascript (desde el navegador).
- javascript - Want HTML form submit to do nothing - Stack Overflow: Para que el form del HTML no hiciera la acción por defecto (enviar la información automáticamente al hacer clic en Iniciar sesión), sino que se activara una función de Javascript, para que dicha función trate de iniciar sesión y, si no, muestre un mensaje de que hubo un error.
- Con esas dos fuentes ya fue posible hacer la verificación del inicio de sesión.
- Se añade la lógica que permite recuperar la lista de todos los artículos (mostrada inicialmente antes de escoger filtros).
- Fue necesario añadir al stored procedure que también retornara el ID, para mostrarlo en la tabla.
- Además, en la capa de Python se agregó el código para ordenar alfabéticamente los artículos (por nombre).
- Al ejecutar otra vez el script para cargar los datos del XML, fue notorio un problema: se estaba borrando la tabla de usuarios sin borrar la tabla de EventLog (que contiene un ID de usuario asociado a la tabla borrada), por lo que surgía un error en el borrado.
Commits relacionados
- Create server folder · psluk/BD1TP1@434103e (github.com)
- Modify data types from VARCHAR to NCHAR · psluk/BD1TP1@a7086ff (github.com)
- Add basic server and HTML files · psluk/BD1TP1@c4eba7d (github.com)
- Add basic HTML for LOGIN and INDEX files · psluk/BD1TP1@7d78ef0 (github.com)
- Add Login Feature · psluk/BD1TP1@a9f9571 (github.com)
- Add main data retrieval · psluk/BD1TP1@13538e2 (github.com)
- Fix reference error when deleting a referenced key · psluk/BD1TP1@49674e1 (github.com)
Tiempo
- 8 horas, 42 minutos
Comentarios
Publicar un comentario