Python de Cero a Pro - Cap. 20 - Integración CLI y Punto de Entrada
Serie: Arquitectura de Sistemas 🏗️
Section titled “Serie: Arquitectura de Sistemas 🏗️”Este es el gran final de nuestra práctica secuencial.
- Módulo de Persistencia JSON 🗄️
- Módulo de Procesamiento de Fechas 🗓️
- Módulo de Seguridad y Ofuscación 🛡️
- Arquitectura de Modelos de Datos 🧩
- Interfaz de Usuario TUI Profesional 🎮
- Integración CLI y Lanzador Principal (Estás aquí) 📍
Integración CLI y Punto de Entrada 🚀
Section titled “Integración CLI y Punto de Entrada 🚀”¡Felicidades por llegar hasta aquí! Hemos construido todos los pilares de una aplicación profesional. Ahora es el momento de unirlos. Utilizaremos la librería Click para gestionar los comandos de nuestra terminal y crearemos el archivo main.py, que será el punto de entrada oficial de nuestro sistema Qué Pasa Linux.
🛠️ Paso 1: El Controlador CLI (CLI/users_cli.py)
Section titled “🛠️ Paso 1: El Controlador CLI (CLI/users_cli.py)”Este archivo es el que “habla” con el usuario mediante comandos. Integra la lógica de Click con la interfaz visual TUI que creamos en el capítulo anterior.
import clickfrom views.users_interface import mostrar_menu_principal
@click.group()def cli(): """Sistema de Gestión de Usuarios - Qué Pasa Linux 🐧""" pass
@cli.command()def interfaz(): """Inicia la interfaz visual e interactiva (TUI).""" # Llamamos a nuestro menú interactivo del Cap. 19 mostrar_menu_principal()
@cli.command()@click.option('--user', prompt='Nombre de usuario', help='ID del usuario a buscar.')def buscar(user): """Búsqueda rápida de un usuario por comando.""" from models.Users import User res = User.Buscar_Por_Username(user) if res: click.echo(f"✅ Usuario encontrado: {res}") else: click.echo("❌ Usuario no registrado.")
def interfaz_usuario(): """Función de ayuda para ejecutar la interfaz directamente.""" cli()🏁 Paso 2: El Lanzador Principal (main.py)
Section titled “🏁 Paso 2: El Lanzador Principal (main.py)”Este es el archivo que se encuentra en la raíz de tu proyecto y es el encargado de arrancar todo el motor. Es simple, directo y profesional.
import sysfrom CLI.users_cli import interfaz_usuario
# --- Punto de Entrada Principal ---
def iniciar_aplicacion(): """Lanza el CLI que controla tanto los comandos como la interfaz visual.""" try: # Iniciamos el motor del CLI que gestiona los comandos interfaz_usuario() except KeyboardInterrupt: print("\n\n🛑 Aplicación cerrada por el usuario. ¡Hasta pronto!") sys.exit(0) except Exception as e: print(f"❌ Error crítico al iniciar la aplicación: {e}") sys.exit(1)
if __name__ == "__main__": iniciar_aplicacion()🌳 Estructura de Árbol de Archivos Final
Section titled “🌳 Estructura de Árbol de Archivos Final”Al terminar este curso, tu proyecto de Qué Pasa Linux debe verse así de organizado:
mi_proyecto_python/├── main.py # <--- Punto de entrada principal├── CLI/│ └── users_cli.py # Controlador de comandos (Click)├── models/│ └── Users.py # Arquitectura del usuario y lógica├── modules/│ ├── save_json.py # Persistencia de datos│ ├── date_parser.py # Manejo de fechas│ └── security.py # Ofuscación XOR/Base64├── views/│ └── users_interface.py # Estética visual (Rich/TUI)├── data/│ └── users/│ └── users.json # <--- Donde vive tu base de datos actual└── requirements.txt # Dependencias: click, rich...🕹️ Cómo Correr tu Aplicación
Section titled “🕹️ Cómo Correr tu Aplicación”Para utilizar tu sistema profesional, sigue estas sencillas instrucciones desde tu terminal de Fedora, Windows o macOS:
-
Instalar Dependencias: Asegúrate de tener instaladas las librerías necesarias:
Terminal window pip install click rich -
Lanzar la Interfaz Visual: Ejecuta el comando principal pasándole el argumento
interfaz:Terminal window python main.py interfaz -
Búsqueda por Comando (CLI Directo): Puedes buscar datos sin entrar al menú visual:
Terminal window python main.py buscar --user RamiroPastrano
Conclusión de la Serie 🎉
Section titled “Conclusión de la Serie 🎉”¡Haz completado la serie de Arquitectura de Sistemas con Python! Has pasado de crear scripts aleatorios a construir un ecosistema real con:
- Modularidad: Cada función tiene su lugar.
- Seguridad: Los datos están protegidos.
- Estética: La experiencia de usuario es de primer nivel.
- Robustez: El programa maneja errores con elegancia.
Este es el nivel que exige la industria del software hoy en día. ¡Sigue adelante, rompe las barreras de la tecnología y nos vemos en el próximo curso de Qué Pasa Linux! 🐧🛡️⚙️💪
Referencias Master
Section titled “Referencias Master”- Click Documentation: Domina los argumentos de terminal.
- Rich Documentation: Crea dashboards aún más complejos.
- Qué Pasa Linux YouTube: Repasando todo lo aprendido en video.