Skip to content

gustavocondec/mvc_python_mysql

Repository files navigation

CRUD MVC de Empleados en Python + MySQL

Aplicación web sencilla basada en Flask que implementa un CRUD siguiendo la arquitectura MVC para gestionar empleados en una base de datos MySQL.

Requisitos

  • Python 3.11+
  • Servidor MySQL accesible y usuario con permisos de lectura/escritura

Levantar el proyecto sin Docker

  1. Crea y activa un entorno virtual (opcional pero recomendado):
    python3 -m venv .venv
    source .venv/bin/activate
  2. Instala dependencias:
    pip install -r requirements.txt
  3. Inicializa la base de datos y tabla de empleados:
    mysql -u <usuario> -p < sql/schema.sql
  4. Configura las variables de entorno para conectar con MySQL (o crea un .env):
    export MYSQL_HOST=localhost
    export MYSQL_PORT=3306
    export MYSQL_DATABASE=empleados_db
    export MYSQL_USER=root
    export MYSQL_PASSWORD=tu_password
  5. Arranca la aplicación:
    flask --app main run
  6. Abre http://127.0.0.1:5000/employees en tu navegador para usar el CRUD.

Levantar el proyecto con Docker Compose

  1. Ajusta las credenciales en .env; dentro del contenedor la app usa MYSQL_HOST=mysql.
  2. Construye e inicia los servicios Web + MySQL:
    docker compose up --build
  3. Ingresa a http://127.0.0.1:5000/employees.
  4. Detén los contenedores cuando termines:
    docker compose down

Arquitectura

  • app/models: Define las entidades de dominio (Employee).
  • app/repositories: Acceso a datos usando MySQL (employee_repository).
  • app/controllers: Controladores Flask que actúan como capa de presentación.
  • templates: Vistas HTML (Jinja2) para listar, crear y editar empleados.
  • sql/schema.sql: Script para crear la base de datos y la tabla employees.

Próximos pasos sugeridos

  • Añadir autenticación básica o middleware de seguridad.
  • Incluir validaciones más robustas y manejo de errores global.
  • Crear pruebas unitarias e integración para repositorio y controladores.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published