Skip to content

Python de Cero a Pro - Cap. 20 - Integración CLI y Punto de Entrada

Este es el gran final de nuestra práctica secuencial.

  1. Módulo de Persistencia JSON 🗄️
  2. Módulo de Procesamiento de Fechas 🗓️
  3. Módulo de Seguridad y Ofuscación 🛡️
  4. Arquitectura de Modelos de Datos 🧩
  5. Interfaz de Usuario TUI Profesional 🎮
  6. Integración CLI y Lanzador Principal (Estás aquí) 📍

¡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.

CLI/users_cli.py
import click
from 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.

main.py
import sys
from 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:

Terminal window
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...

Para utilizar tu sistema profesional, sigue estas sencillas instrucciones desde tu terminal de Fedora, Windows o macOS:

  1. Instalar Dependencias: Asegúrate de tener instaladas las librerías necesarias:

    Terminal window
    pip install click rich
  2. Lanzar la Interfaz Visual: Ejecuta el comando principal pasándole el argumento interfaz:

    Terminal window
    python main.py interfaz
  3. Búsqueda por Comando (CLI Directo): Puedes buscar datos sin entrar al menú visual:

    Terminal window
    python main.py buscar --user RamiroPastrano

¡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! 🐧🛡️⚙️💪