Guia 7 - Backend - Lenguaje de Programacion Python - ACTUALIZADO 14072024
Guia 7 - Backend - Lenguaje de Programacion Python - ACTUALIZADO 14072024
2.PRESENTACIÓN
Con esta Guía, se busca que los aprendices utilicen estándares de codificación, la construcción de
líneas de código para los módulos del software, aplicación de pruebas unitarias y la elaboración de
manuales de usuarios.
Se tiene como objetivo el diseño de un sitio web con conexión a un base de datos (XAMPP / Servidor
Apache / MySQL) utilizando algunos de los lenguajes de programación, entre ellos: Python
(Framework Flask), PHP (Framework Laravel) y/o Java (JSP / XAMPP/Tomcat). Asimismo, el diseño
de formulación que ilustren operaciones CRUD - Create (Crear), Read (Leer), Update (Actualizar) y
Delete (Borrar) registros en la base de datos.
GFPI-F-135 V04
3. FORMULACIÓN DE LAS ACTIVIDADES DE APRENDIZAJE
DIAGNOSTIVO PREVIO: Diligenciar el siguiente Formulario, con el fin de conocer los niveles previos que
tiene el aprendiz referente a los temas de lenguajes de programación, editores de código, entornos de desarrollo,
framework, servidores de aplicaciones, casos de pruebas, manuales de usuarios, donde esta encuesta no genera
ningún tipo de nota. Clic- Formulario Web:
Si quieres llevar tus habilidades de programación a un nuevo nivel, te recomendamos llevar a cabo las
siguientes prácticas:
1. Aunque es natural priorizar la optimización, considera la legibilidad como un factor igual de importante al
escribir tu código.
2. Esfuérzate en estructurar una arquitectura concreta tomando en cuenta la utilidad del código, su
funcionalidad, compatibilidad, etc.
3. Intenta leer mucho código fuente pues esto te ayudará a nutrirte de conocimiento ajeno y aprenderás a
diferenciar entre un código de calidad y uno mediocre.
4. Si te encuentras en una fase de aprendizaje, es recomendable que coloques comentarios en tu propio
código con la intención de evitar desorientarte al leer las funciones más complejas y facilitar la lectura de
terceros.
5. Testea tu código siempre, sin importar su longitud, para comprobar que todo esté bien. Recuerda que es
mejor encontrar un error a tiempo para evitar así problemas en el futuro.
6. Lleva un control de versiones que te ayude a gestionar los cambios en tu código.
7. No utilices caracteres únicos del español pues tu código podría sufrir alteraciones al abrirse en diferentes
equipos.
GFPI-F-135 V04
Un último TIP que te damos para seguirte abriendo camino en el mundo de la programación es estar en
capacitación constante. Por ejemplo, puedes formarte en temas de ciberseguridad que últimamente es
una de las áreas mejor pagadas y con mayor campo laboral.
Ambiente requerido: Sala de sistemas, dotado con mesas de trabajo sillas y equipos audiovisuales Software MEET,
Drive Gmail y Plataforma Zajuna
Estrategias o técnicas didácticas activas: Conversatorio dirigido
Materiales de formación: Equipos audiovisuales
Material de apoyo: Video educativo
Duración de la actividad: 2 horas
GFPI-F-135 V04
• Paradigmas de programación: conceptos, tipos.
GFPI-F-135 V04
• Entornos de trabajo en el desarrollo de software
Si eres programador, seguramente has escuchado los términos: staging, integración, pruebas,
desarrollo y producción. ¿Pero sabes realmente que significan? se trata de los entornos de desarrollo
de software que representan las diferentes etapas por las que va avanzando un software mientras se va
desarrollando hasta salir a su versión final. Cada empresa o equipo puede definir sus propios entornos.
2. Entorno de integración: En esta etapa, los cambios de todos los programadores tienen que
unirse sin que se rompa el software. Para eso, existen pruebas automatizadas que evitan que
los cambios que generen conflictos sean aprobados.
GFPI-F-135 V04
4. Entorno staging o pre-producción: El entorno staging es prácticamente una copia del entorno
de producción. El objetivo es probar que todas funciones correctamente antes de mandar el
software a los usuarios finales. Sin embargo, hay que tener en cuenta que es muy difícil replicar
producción porque allí hay tráfico y usuarios reales, publicaciones, entre otras cosas.
5. Entorno de producción: Finalmente, en este entorno se publican los cambios y los usuarios
pueden verlos. Por ejemplo, si en EDteam añadiéramos una nueva característica a la plataforma,
luego de meses de pasar por las pruebas y que llegue hasta los usuarios, es que decimos que
está en producción.
P.D: Se le suele llamar: salir a producción, deployment o hacer deploy. Si quieres garantizar la calidad
del software, es mejor que comiences a pasar por todas estas etapas. Además, existe algo llamado
CI/CD (integración continua o despliegue continuo) que permite pasar por todas las etapas de
manera automatizada.
GFPI-F-135 V04
• Servidores de aplicaciones / servidores web: definiciones, tipos, usos.
Servidor de Aplicaciones
Es un software que se encarga de
ejecutar aplicaciones web dinámicas. A diferencia
del servidor web, el servidor de aplicaciones puede
procesar y ejecutar código en el servidor antes de
enviar la respuesta al cliente.
Está diseñado para ejecutar aplicaciones complejas y gestionar solicitudes de clientes que
requieren procesamiento de datos en tiempo real.
GFPI-F-135 V04
Servidor web
Es un software que responde a las solicitudes HTTP (Protocolo de
Transferencia de Hipertexto) de los clientes y envía páginas web y otros
recursos estáticos, como imágenes y archivos CSS, al navegador del usuario.
Su función principal es gestionar las solicitudes y respuestas HTTP, procesar páginas HTML y
entregar contenido estático al navegador.
• Procesamiento de Páginas Estáticas: El servidor web puede procesar páginas HTML, CSS
y otros recursos estáticos almacenados en el sistema de archivos del servidor y enviarlos
directamente al cliente.
• Ejemplos Populares: Algunos ejemplos populares de servidores web son Apache HTTP
Server y Nginx
El Hosting, es un servicio de alojamiento web, es un tipo de servicio que permite a los usuarios convertir
su espacio web accesible a través de la Word Wide Web.
GFPI-F-135 V04
Diferencia entre un Hosting compartido, VPN y Hosting dedicado.
Paradigma API
Una interfaz es una capa que conecta dos sistemas. Una API es una interfaz que conecta aplicaciones
para que compartan información, por ejemplo, el API de mapas de Google, entre otros.
GFPI-F-135 V04
• Request Response (REST, RPC, GRAPHQL) y event driven apis (Webhocks,
Websockets).
Ejemplos:
GFPI-F-135 V04
Casos de prueba: definición, técnicas de creación, plantillas existentes,
ejecución.
Casos de pruebas: Son una parte integral del ciclo de vida del desarrollo de software y son la
forma de garantizar y asegurar, entre otras cosas, la funcionalidad, el rendimiento y la
experiencia de uso. Las pruebas de software pueden ser realizadas manualmente a través de
la automatización o de forma híbrida y pueden clasificarse entre funcionales y no funcionales.
Tipos de Pruebas de Software. Los tipos de pruebas de acuerdo a su objetivo, se clasifican en:
Pruebas Pruebas No
Funcionales Funcionales
1.Unitarias 1.Rendimiento
2.Componentes 2.Carga y Estrés
3.Integración 3.Seguridad
4.Sistema 4. Escalabilidad
5.Humo
6.Aceptación
7.Regresión
8.De Interfaz
Ver video:
https://www.youtube.com/watch?app=desktop&v=Uf1Kk52ONYc
GFPI-F-135 V04
• Pruebas unitarias de software: concepto, tipos y características.
1. Pruebas unitarias (Unit testing): Son pruebas para funciones específicas (de ahí su nombre).
Es decir, es código para probar el funcionamiento de otro código. El unit testing se usa en la
metodología TDD (Desarrollo orientado por pruebas) que consiste en escribir las pruebas antes que
escribir el código de la aplicación. Aunque puede parecer que demora el desarrollo, a largo plazo es
mejor porque facilita la refactorización, previene las fallas y hace escalable el proyecto.
2. Pruebas de integración: Una vez que las funciones han pasado las pruebas unitarias hay que
comprobar que al integrarlas funcionen correctamente, es decir, se prueba la comunicación entre los
componentes. Por ejemplo, en EDteam el componente usuario puede comprar un curso y para eso debe
agregarlo al carrito de compra. El test de integración comprobará que estos componentes se
comuniquen y funcionen juntos.
3. Pruebas end to end (E2E): En estas pruebas simulamos la interacción que hace un usuario con la
aplicación, es decir, no importa lo que sucede por debajo (el código) sino que el usuario pueda completar
un proceso (como iniciar sesión). Por ejemplo, queremos probar si un usuario puede comprar un curso
en EDteam. Para eso agregaremos unos datos ficticios (input) en el formulario de compra (nombre, país,
tarjeta de crédito) y esperamos que la salida (output) sea un mensaje de compra exitosa.
GFPI-F-135 V04
¿Qué es un checklist y cómo se debe utilizar?
Los listados de control, listados de chequeo, checklist u hojas de
verificación, siendo formatos generados para realizar actividades
repetitivas, controlar el cumplimiento de un listado de requisitos o recolectar
datos ordenadamente y de manera sistemática. Se utilizan para hacer
comprobaciones sistemáticas de actividades o productos asegurándose de
que el trabajador o inspector no se olvida de nada importante.
Para qué sirven las listas de chequeo. Los principales de los checklist son los siguientes:
✓ Durante la realización de actividades en las que es muy importante que no se olvide ningún paso
y deben hacerse las tareas con un orden establecido.
✓ Realizar inspecciones donde se deja constancia de cuáles han sido los puntos inspeccionados.
✓ Examinar o analizar la localización de los defectos. Verificando las causas de los defectos.
✓ El listado suele ser utilizado para realizar las comprobaciones rutinarias y asegurar que al
operario o el encargado de dichas comprobaciones no se le pasa nada por algo, además de que
se realice la simple obtención de datos.
✓ La ventaja de los checklist es que, además de sistematizar todas las actividades que se deben
realizar, una vez que se han rellenado sirven de registro, y puede ser revisado de manera
posterior para tener constancia de las diferentes actividades que se realizan en un momento
dado.
✓ Un checklist es una herramienta de ayuda en el trabajo que se diseña para reducir los errores
provocados por los potenciales límites de la memoria y la atención en el ser humano. Ayuda a
asegurar la consistencia y exhaustividad en la realización de una tarea. Un ejemplo sencillo de
un listado de comprobación será un listado de tareas pendientes.
GFPI-F-135 V04
Manuales usuario: características, tipos, requerimientos, procedimiento,
técnicas de documentación de software.
Un manual de usuario es el material que proporcionas a los usuarios de tu producto para ayudarles a
utilizarlos correctamente.
GFPI-F-135 V04
• Buenas prácticas de programación: concepto, técnicas, principios, tipos,
importancia, reglas.
Cada día aparecen nuevos lenguajes de programación, las tecnologías mejoran y las
herramientas son más sofisticadas, por lo que es necesario que los profesionales de la
programación estén en constante actualización de sus conocimientos.
GFPI-F-135 V04
Actividad 1: Conceptos. Diferencia entre FrontEnd y BackEnd
Exposiciones y Evaluación Online
Ambiente requerido: Sala de sistemas, dotado con mesas de trabajo sillas y equipos audiovisuales
Software MEET, Drive Gmail y Plataforma Zajuna
Estrategias o técnicas didácticas activas: Realización taller práctico
Materiales de formación: Equipos audiovisuales
Material de apoyo: Video educativo
Duración de la actividad: 4 horas
GFPI-F-135 V04
3.3 Actividades de apropiación
GFPI-F-135 V04
Diseño del Modelo Entidad Relación
GFPI-F-135 V04
Diseño de Formularios Web / conexión base de datos.
GFPI-F-135 V04
Lenguajes de Programación Python
Python es elegido cada día por empresas de alto nivel, señal de la calidad y
buena usabilidad que ofrecen las webs creadas con este código. Así, programar
en Python es una de las aptitudes más buscadas por los headhunters
(empresas cazatalentos) como Netflix, Spotify, Pixar.
Los aprendices que programan en Python estarán mejor preparados para vivir
en el mundo actual, maximizar sus posibilidades de salida laboral, potenciar sus
habilidades y ser parte de la revolución del software.
Flask utiliza el motor de plantillas Jinja para crear dinámicamente páginas HTML usando conceptos
Python familiares como variables, bucles, listas, etcétera. Flask cuenta con muchas extensiones.
Flask creadas por la comunidad, entre ellas:
• Flask-Login: Gestiona la sesión del usuario y el inicio y cierre de sesión, además de recordar a los usuarios con
sesión iniciada.
• Flask-SQLAlchemy: Simplifica el uso de Flask con SQLAlchemy, un kit de herramientas Python SQL y un Asignador
relacional de objetos para interactuar con bases de datos SQL.
• Flask-Mail: Ayuda con la tarea de enviar mensajes de correo electrónico en su aplicación Flask.
•
GFPI-F-135 V04
Actividad 2: Lenguajes de Programación y Frameworks
Objetivo2: Diseñar un sitio web donde se ilustre un mensaje de cadena “Hola Mundo”
GFPI-F-135 V04
Actividad 3: Entornos de desarrollo “Local”
Lenguajes de Programación Python. Bootstrap y Formularios
Objetivo: Diseñar un sitio web donde se visualice un menú de navegación (horizontal), en los cuales
contenga formularios para la ilustración de (4) cuatro algoritmos computacionales en Python.
Menu de Navegacion
+ Creacion de Rutas (@app.route)
+ Bootstrap + Menu de navegacion (Navbar) + layout
Criterios de Evaluación: • Programa los módulos del software de escritorio, web o móvil de acuerdo
con las especificaciones del diseño y el estándar de codificación.
Ambiente requerido: Sala de sistemas, dotado con mesas de trabajo sillas y equipos audiovisuales Software MEET,
Drive Gmail y Plataforma Zajuna
Estrategias o técnicas didácticas activas: Realización taller práctico
Materiales de formación: Equipos audiovisuales
Material de apoyo: Video educativo
Duración de la actividad: 32 horas
GFPI-F-135 V04
3.4 Actividades de Transferencia el Conocimiento
Actividad 4: Sitio Web Ventas de Computadores
Proyecto Integrador Python + Conexión de Bases de datos Mysql
Objetivo: Diseñar un sitio web con un menú de navegación, formularios ( tabla_categorias ), conexión Base de
Datos MySQL VENTAS, en los cuales se deberán insertar registros.
Criterios de Evaluación: • Programa los módulos del software de escritorio, web o móvil de acuerdo con
las especificaciones del diseño y el estándar de codificación.
Evidencia: Guardar el archivo etiquetado: “Actividad 4_Nombre del aprendiz” en PDF
GFPI-F-135 V04
Actividad 5. Sitio Web Ventas de Computadores. Metodología CRUD
Proyecto Integrador Python + Conexión de Bases de datos Mysql
Objetivo: Realizar las respectivas pruebas de software y/o Listas de chequeo, relacionado
con el diseño del sitio web ventas, conexión de base de datos y metodología CRUD.
+ Rutas + + Vistas / Formularios Web
+ Conexión de Bases de Datos ( XAMPP / Apache / Mysql)
+ CRUD
Criterios de Evaluación.
• Programa los módulos del software de escritorio, web o móvil de acuerdo con las especificaciones del diseño y el estándar de
codificación.
• Verifica la funcionalidad del software de acuerdo con las pruebas unitarias.
• Aplica técnicas de documentación en la elaboración de manuales de usuario según los requerimientos técnicos del software
desarrollado.
Evidencia: Etiquetar el archivo en PDF: “Actividad 5_Nombre del aprendiz”
Ajustes razonables. El aprendiz debe diseñar mínimamente un sitio web
conectado a una base de datos, insertando registros.
Ambiente requerido: Sala de sistemas, dotado con mesas de trabajo sillas y equipos audiovisuales Software MEET, Drive
Gmail y Plataforma Zajuna
Estrategias o técnicas didácticas activas: Realización taller práctico
Materiales de formación: Equipos audiovisuales
Material de apoyo: Video educativo
Duración de la actividad: 32 horas
GFPI-F-135 V04
4. PLANTEAMIENTO DE EVIDENCIAS DE APRENDIZAJE PARA LA EVALUACIÓN EN EL
PROCESO FORMATIVO.
ACTIVIDAD PRACTICA /
LISTA DE CHEQUEO.
Producto
Actividad 5. Sitio Web
Ventas de Computadores.
Metodología CRUD.
Proyecto Integrador
Python + Conexión de
Bases de datos Mysql
GFPI-F-135 V04
5. GLOSARIO DE TÉRMINOS
• Gestor de bases de datos: Programa que permite crear y mantener una base de datos,
asegurando su integridad, confidencialidad y seguridad.
• Editores Web: También llamado editor de texto plano. Este tipo de editor suele ser muy sencillo.
Dos ejemplos son Notepad o Bloc de Notas (incluido en Windows) y Kate (GNU/Linux). Con
cualquiera de los dos bastaría para escribir las líneas de código necesarias para diseñar una
página Web.
6. REFERENTES BILBIOGRÁFICOS
• Date, C. J. Ruiz FaudÛn, S. L. M. (2001). Introducción a los sistemas de bases de datos (7™ Ed.).
• Python, https://www.tokioschool.com/noticias/curso-python-web-disenar-web/
GFPI-F-135 V04
• Entornos de desarrollo, https://ed.team/blog/entornos-de-trabajo-en-el-desarrollo-de-software-
44268387-202d-4dec-98d4-b5d31c5aa95a
• Framework. https://springtutorials.com/spring-framework-vs-rest-of-the-world/
8. CONTROL DE CAMBIOS
GFPI-F-135 V04