lunes, 23 de junio de 2025

🧪 Python Nivel 2 – Parte 9-10: Proyecto CRUD Completo en Consola con POO y JSON

 

🎯 Objetivo del proyecto:

Crear una aplicación funcional por consola que permita gestionar una lista de usuarios con las siguientes operaciones:

  • 🔹 Crear usuarios

  • 🔹 Leer todos los usuarios

  • 🔹 Actualizar un usuario existente

  • 🔹 Eliminar usuarios

  • 🔹 Guardar los datos en un archivo .json

  • 🔹 Recuperarlos al iniciar el programa


🗂️ Estructura del sistema

🔧 Clases necesarias:

  • Usuario

  • GestorUsuarios (controlador del CRUD)


💻 Código simplificado

🧱 Clase Usuario


class Usuario: def __init__(self, nombre, email): self.nombre = nombre self.email = email def to_dict(self): return {"nombre": self.nombre, "email": self.email}

🧱 Clase GestorUsuarios


import json import os class GestorUsuarios: def __init__(self, archivo): self.archivo = archivo self.usuarios = self.cargar() def cargar(self): if os.path.exists(self.archivo): with open(self.archivo, "r", encoding="utf-8") as f: datos = json.load(f) return [Usuario(**d) for d in datos] return [] def guardar(self): with open(self.archivo, "w", encoding="utf-8") as f: json.dump([u.to_dict() for u in self.usuarios], f, indent=4) def crear_usuario(self, nombre, email): self.usuarios.append(Usuario(nombre, email)) self.guardar() def listar(self): for i, u in enumerate(self.usuarios, 1): print(f"{i}. {u.nombre} - {u.email}") def actualizar(self, indice, nombre, email): if 0 <= indice < len(self.usuarios): self.usuarios[indice].nombre = nombre self.usuarios[indice].email = email self.guardar() def eliminar(self, indice): if 0 <= indice < len(self.usuarios): del self.usuarios[indice] self.guardar()

🧑‍💻 Interfaz por consola


gestor = GestorUsuarios("usuarios.json") while True: print("\n1. Crear usuario\n2. Listar usuarios\n3. Actualizar usuario\n4. Eliminar usuario\n5. Salir") opcion = input("Selecciona una opción: ") if opcion == "1": nombre = input("Nombre: ") email = input("Email: ") gestor.crear_usuario(nombre, email) elif opcion == "2": gestor.listar() elif opcion == "3": gestor.listar() i = int(input("Número de usuario a actualizar: ")) - 1 nombre = input("Nuevo nombre: ") email = input("Nuevo email: ") gestor.actualizar(i, nombre, email) elif opcion == "4": gestor.listar() i = int(input("Número de usuario a eliminar: ")) - 1 gestor.eliminar(i) elif opcion == "5": print("👋 Adiós.") break

🧠 ¿Qué aprendiste hoy?

✔️ Crear una aplicación CRUD completa con Python
✔️ Usar clases y persistencia con JSON
✔️ Desarrollar menús interactivos
✔️ Aplicar POO en un contexto realista


📂 Código completo en GitHub:
github.com/josecodetech

🎥 Video paso a paso en YouTube:
https://www.youtube.com/watch?v=f5yfu-TxWlA




No hay comentarios:

Publicar un comentario

Se procedera a revision para su pronta publicacion en caso de que no incumpla las normas de blogger.