🛠️ CLI.md — Guía de Comandos CLI
🛠️ Fleting CLI
El CLI de Fleting automatiza la creación y eliminación de archivos siguiendo el estándar del framework.
📦 Inicialización del Proyecto
Para crear la estructura inicial de un nuevo proyecto Fleting, ejecuta:
fleting init <nombre_proyecto>
cd <nombre_proyecto>
fleting run
📌 Comportamento:
Cria automaticamente a pasta
Estrutura compatível com Flet Build (APK / Web / Desktop)
Nome padrão do projeto: Fleting
Estrutura gerada:
<nombre_proyecto>/
├─ assets/
├─ configs/
├─ controllers/
├─ core/
├─ models/
├─ views/
└─ main.py
Salida esperada:
✅ ¡Framework Fleting creado con éxito!
Este comando crea automáticamente la estructura básica de carpetas y archivos necesarios para iniciar una app Fleting.
🖥️ Comando de Ayuda
Para ver todos los comandos disponibles en la CLI:
fleting -h
o
fleting --help
Salida:
🚀 Fleting CLI
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 Uso:
fleting <comando> [opciones]
📖 Comandos Disponibles
┌──────────────────────────────────────┬────────────────────────────────────────────────────────┐
│ Comando │ Descripción │
├──────────────────────────────────────┼────────────────────────────────────────────────────────┤
│ fleting init <nombre_app> │ Inicializa un nuevo proyecto Fleting │
│ fleting info │ Muestra información de versión y del sistema │
│ fleting run │ Ejecuta la aplicación │
│ fleting create page <nombre> │ Crea una página (model + controller + view) │
│ fleting create view <nombre> │ Crea una nueva vista │
│ fleting create model <nombre> │ Crea un nuevo modelo │
│ fleting create controller <nombre> │ Crea un nuevo controller │
|--------------------------------------|--------------------------------------------------------|
│ fleting delete page <nombre> │ Elimina una página existente │
│ fleting delete view <nombre> │ Elimina una vista │
│ fleting delete model <nombre> │ Elimina un modelo │
│ fleting delete controller <nombre> │ Elimina un controller │
|--------------------------------------|--------------------------------------------------------|
│ fleting list pages │ Lista todas las páginas │
│ fleting list controllers │ Lista todos los controllers │
│ fleting list views │ Lista todas las vistas │
│ fleting list models │ Lista todos los models │
│ fleting list routes │ Lista todos las rutas │
|--------------------------------------|--------------------------------------------------------|
│ fleting db init │ Inicializa la estructura de la base de datos │
│ fleting db migrate │ Ejecuta las migraciones de la base de datos │
│ fleting db seed │ Inserta datos iniciales en la base de datos │
│ fleting db make <nombre> │ Crea una nueva migración │
│ fleting db rollback │ Revierte la última migración aplicada │
│ fleting db status │ Muestra el estado actual de las migraciones │
└──────────────────────────────────────┴────────────────────────────────────────────────────────┘
ℹ️ Información del Entorno
El comando info muestra información detallada del entorno, versiones y dependencias instaladas.
fleting info
Ejemplo de salida:
______ _ _ _
| ____| | | | (_)
| |__ | | ___| |_ _ _ __ __ _
| __| | |/ _ \ __| | '_ \ / _` |
| | | | __/ |_| | | | | (_| |
|_| |_|\___|\__|_|_| |_|\__, |
__/ |
|___/
🚀 Fleting Framework
📦 Entorno
🧠 Python : 3.11.0
🖥️ Sistema : Windows 10
🧩 Flet : 0.80.0
🚀 Fleting : 1.0.12
📚 Bibliotecas instaladas:
- anyio==4.12.0
- certifi==2025.11.12
- flet==0.80.0
- flet-desktop==0.80.0
- fleting==1.0.12
- h11==0.16.0
- httpcore==1.0.9
- httpx==0.28.1
- idna==3.11
- msgpack==1.1.2
- oauthlib==3.3.1
- pip==25.3
- repath==0.9.0
- six==1.17.0
- typing_extensions==4.15.0
✅ Entorno listo para usar.
▶️ Ejecutando el Proyecto
Después de inicializar el proyecto, ejecuta la app con:
fleting run
# o
flet run fleting/main.py
# o, alternativamente:
python fleting/main.py
💡 Recomendado: usar `fleting run` para una mejor integración con el runtime de Flet.
✅ Flujo Básico de Uso
pip install flet
pip install fleting
fleting init app
cd app
app> fleting run
# para desarrollo
app> fleting create page home
app> flet run main.py
app> python main.py
▶️ Ejecutando el CLI para desarrollo
Windows
fleting create view home
# o
python -m cli.cli create view home
📦 Comandos Disponibles
🔹 create
Crea archivos estandarizados.
fleting create
🔹 delete
Elimina archivos existentes.
fleting delete
🧩 Tipos Soportados
| Tipo | Descripción |
|---|---|
| controller | Crea un controller |
| view | Crea una view simple |
| model | Crea un model |
| page | Crea view + controller + model |
✨ Ejemplos
Crear una View
fleting create view home
Crea:
views/pages/home_view.py
Crear un Controller
fleting create controller user
Crea:
controllers/user_controller.py
Crear un Model
fleting create model product
Crea:
models/product_model.py
Crear una Page Completa
fleting create page dashboard
Crea automáticamente:
- models/dashboard_model.py
- controllers/dashboard_controller.py
- views/pages/dashboard_view.py
- registra una ruta en configs/routes.py
Todo ya conectado (MVC).
🗑️ Eliminación de Archivos
Eliminar View
fleting delete view home
Eliminar Controller
fleting delete controller user
Eliminar Model
fleting delete model product
Eliminar Page Completa
fleting delete page dashboard
Elimina: - view - controller - model
⚠️ Observaciones Importantes
- El CLI no elimina rutas automáticamente
- No sobrescribe archivos existentes
- Todos los comandos generan logs en
logs/fleting.log
🗄️ Gestión de Base de Datos — Fleting CLI
El Fleting Framework incluye un sistema de gestión de base de datos simple, seguro y orientado a migraciones, inspirado en frameworks modernos como Django y Alembic.
Esta sección describe en detalle todos los comandos disponibles bajo fleting db.
📌 fleting db init
Descripción
Inicializa la estructura básica del sistema de base de datos del proyecto.
Este comando: - Crea las carpetas necesarias para trabajar con base de datos - Prepara el proyecto para recibir migraciones y seeds - No crea tablas ni datos - No ejecuta migraciones
Qué crea
app/
├── migrations/
│ ├── __init__.py
│ └── 001_initial.py
├── seeds/
│ └── initial.py
└── data/
Ejemplo de uso:
fleting db init
Salida esperada
✅ Database structure initialized
📌 fleting db migrate
Descripción: Ejecuta todas las migraciones pendientes del proyecto.
Este comando:
- Crea el archivo de base de datos (SQLite) si no existe
- Ejecuta las funciones up(db) de las migraciones no aplicadas
- Registra cada migración aplicada en la tabla _fleting_migrations
- Nunca ejecuta una migración dos veces
Reglas importantes:
- Solo se ejecutan migraciones no aplicadas
- El orden de ejecución es numérico (001, 002, 003, ...)
- Si una migración falla, el proceso se detiene
Ejemplo de uso
fleting db migrate
Salida esperada
✅ Applied migration 001_initial.py
📌 fleting db seed
Descripción Inserta datos iniciales o de prueba en la base de datos.
Este comando:
- Ejecuta todos los archivos dentro de app/seeds
- Busca la función run(db) en cada seed
- Es ideal para crear usuarios iniciales, datos demo, etc.
⚠️ Advertencia
⚠️ Este comando puede ejecutarse más de una vez, por lo que los seeds deben ser idempotentes (usar INSERT OR IGNORE, por ejemplo).
Ejemplo de uso
fleting db seed
Salida esperada
🌱 Seed executed: initial.py
📌 fleting db make
Descripción Crea una nueva migración de base de datos.
Este comando:
- Genera automáticamente el siguiente número de migración
- Crea un archivo con funciones up(db) y down(db)
- No ejecuta la migración automáticamente
Convención de nombres
001_initial.py
002_create_users_table.py
003_add_email_to_users.py
Ejemplo de uso
fleting db make add_email_to_users
Archivo generado
def up(db):
db.execute("""
ALTER TABLE users ADD COLUMN email TEXT;
""")
def down(db):
# Código para revertir el cambio
pass
📌 fleting db rollback
Descripción Revierte la última migración aplicada.
Este comando:
- Identifica la última migración registrada
- Ejecuta su función down(db)
- Elimina la migración del registro _fleting_migrations
⚠️ Limitación de SQLite
SQLite no soporta todas las operaciones de rollback (por ejemplo, DROP COLUMN), por lo que la implementación de down() debe ser cuidadosa.
Ejemplo de uso
fleting db rollback
Salida esperada
↩️ Rolled back migration 002_add_email_to_users.py
📌 fleting db status
Descripción Muestra el estado actual de las migraciones del proyecto.
Este comando:
- Lista migraciones aplicadas
- Lista migraciones pendientes
- Detecta inconsistencias (migraciones aplicadas sin archivo)
Ejemplo de uso
fleting db status
Salida de ejemplo:
📦 Database status
Applied migrations:
✔ 001_initial.py
Pending migrations:
⏳ 002_add_email_to_users.py
Base de datos actualizada
✅ Database is up to date.
🧠 Buenas prácticas
- Nunca edites una migración ya aplicada
- Crea siempre una nueva migración para cambios de schema
- Implementa down() siempre que sea posible
- Usa SQL explícito para mayor control
- Versiona las migraciones junto al código
🚀 Flujo recomendado
fleting db init
fleting db make create_users_table
fleting db migrate
fleting db seed
Este flujo garantiza un entorno de base de datos consistente, reproducible y seguro.
🎯 Filosofía del CLI
Convención > Configuración
- Cero preguntas interactivas
- Predecible
- Seguro (no sobrescribe código)