Este proyecto implementa un sistema básico de gestión de empleados (CRUD - Create, Read, Update, Delete) utilizando Python con Flask para el backend, MySQL como base de datos y Docker para la contenerización y despliegue.
-
Gestión completa de empleados:
- Crear nuevos empleados
- Ver lista de todos los empleados
- Ver detalles de un empleado específico
- Actualizar información de empleados
- Eliminar empleados
-
Interfaz de usuario intuitiva:
- Formulario para agregar/editar empleados
- Tabla con listado de empleados
- Acciones rápidas para editar y eliminar
-
Tecnologías utilizadas:
- Backend: Python con Flask
- Base de datos: MySQL
- Frontend: HTML, CSS (Bootstrap), JavaScript
- Contenerización: Docker y Docker Compose
- Docker
- Docker Compose
No es necesario instalar Python, MySQL u otras dependencias localmente, ya que todo se ejecuta dentro de contenedores Docker.
.
├── app/
│ ├── .env # Variables de entorno para la aplicación
│ ├── Dockerfile # Instrucciones para construir la imagen de la aplicación
│ ├── app.py # Aplicación principal de Flask
│ ├── requirements.txt # Dependencias de Python
│ └── templates/
│ └── index.html # Plantilla HTML para la interfaz de usuario
├── docker-compose.yml # Configuración de Docker Compose
├── init.sql # Script de inicialización de la base de datos
└── README.md # Este archivo
-
Clona este repositorio:
git clone https://github.com/ppadilla7/docker-composer-file-crud-python.git cd docker-compose-1 -
Inicia los contenedores con Docker Compose:
docker-compose up -
Accede a la aplicación en tu navegador:
http://localhost:5001
La configuración de la aplicación se realiza mediante variables de entorno definidas en el archivo .env y en docker-compose.yml:
MYSQL_HOST: Host de la base de datos (por defecto: db)MYSQL_USER: Usuario de la base de datos (por defecto: root)MYSQL_PASSWORD: Contraseña de la base de datos (por defecto: root)MYSQL_DATABASE: Nombre de la base de datos (por defecto: empleados_db)
Para realizar cambios en la aplicación:
- Modifica los archivos necesarios
- Docker Compose está configurado con volúmenes, por lo que los cambios en el código se reflejarán automáticamente en la aplicación en ejecución (para archivos Python)
- Para cambios en la estructura de la base de datos, modifica el archivo
init.sqly reinicia los contenedores
La aplicación proporciona los siguientes endpoints:
GET /api/empleados: Obtiene todos los empleadosGET /api/empleados/<id>: Obtiene un empleado específico por IDPOST /api/empleados: Crea un nuevo empleadoPUT /api/empleados/<id>: Actualiza un empleado existenteDELETE /api/empleados/<id>: Elimina un empleado
Para detener la aplicación, ejecuta:
docker-compose down
Para detener la aplicación y eliminar los volúmenes (esto eliminará los datos de la base de datos):
docker-compose down -v
[Especifica la licencia aquí]