Aplicación web MVC para administrar contactos usando Flask y PostgreSQL.
- Python 3.12
- Flask
- Flask-SQLAlchemy
- PostgreSQL
- Gunicorn
- Docker
app/
controllers/ # Lógica de negocio y operaciones CRUD
models/ # Entidades y acceso a datos (SQLAlchemy)
views/ # Rutas HTTP y renderizado de plantillas
templates/ # Vistas HTML (Jinja2)
static/ # Estilos CSS
- Python 3.12+
- PostgreSQL 15+
- Docker (opcional, para despliegue en contenedor)
cd proy1En Windows PowerShell:
python -m venv .venv
.\.venv\bin\Activate.ps1pip install -r requirements.txtEjemplo con psql:
CREATE DATABASE contactos_db;Copia .env.example a .env y ajusta valores:
SECRET_KEY=change-me
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/contactos_dbSi usas PowerShell para una sesión rápida:
$env:SECRET_KEY="mi_clave"
$env:DATABASE_URL="postgresql://postgres:postgres@localhost:5432/contactos_db"python run.pyAbrir en navegador:
http://localhost:5000
docker compose up -d --buildEsto iniciara:
db: PostgreSQL 15app: Aplicacion Flask en puerto5000
docker compose psdocker compose logs -fdocker compose downSi quieres eliminar tambien el volumen de datos de PostgreSQL:
docker compose down -vAbrir en navegador:
http://localhost:5000
GET /Lista y búsqueda de contactos.GET /contacts/newFormulario para crear contacto.POST /contacts/newCrear contacto.GET /contacts/<id>/editFormulario para editar contacto.POST /contacts/<id>/editActualizar contacto.POST /contacts/<id>/deleteEliminar contacto.
- La tabla se crea automáticamente al iniciar la aplicación (
db.create_all()). - El campo
emailes único para evitar duplicados.