Episodio 2, Capítulo 15

Creando una Aplicación (App) en Django

⏱️ Tiempo de lectura: 8 minutos
🧩 Actividades: 1 (Crear app)
📚 Nivel: Principiante

🧱 Proyecto vs. App: Organizando Nuestro Código

Hasta ahora, hemos creado un "proyecto" Django llamado agenda. En el mundo de Django, un proyecto es como el contenedor principal de todo tu sitio web o aplicación web. Dentro de este proyecto, podemos tener una o varias aplicaciones (o "apps").

Piensa en un proyecto Django como una casa. Y cada "app" es una habitación específica de esa casa con una función particular: la cocina (para manejar recetas), el dormitorio (para perfiles de usuario), el living (para mostrar noticias). Cada app se encarga de una parte de la funcionalidad total del sitio.

Esta modularidad es una de las grandes ventajas de Django. Puedes tener una app para manejar los blogs, otra para los productos de una tienda, otra para los usuarios, etc. Y estas apps pueden ser reutilizables en otros proyectos si están bien diseñadas.

Planos de una casa con diferentes habitaciones

Un proyecto Django es la casa completa, y las "apps" son sus habitaciones especializadas.

Para nuestro caso, vamos a crear una app que llamaremos libreta. Dentro de esta app libreta, manejaremos la información de nuestros proveedores y, más adelante, quizás también clientes, compras, ventas, etc.

🚀 Creando Nuestra Primera App: libreta

Al igual que para crear el proyecto, usamos nuestro fiel amigo manage.py para crear una nueva app.

  1. Detén el servidor: Si tienes el servidor de desarrollo corriendo, ve a la terminal y presiona Control + C.
  2. Comando para crear la app: Asegúrate de estar en la carpeta raíz de tu proyecto Django (la que contiene manage.py) y que tu entorno virtual esté activado. Luego, ejecuta:
    Terminal (entorno activado)
    python manage.py startapp libreta

    (O python3 manage.py startapp libreta si es tu caso).

    Aquí, startapp es la orden para crear una nueva aplicación, y libreta es el nombre que le estamos dando a nuestra app.

¡Y listo! Django habrá creado una nueva carpeta llamada libreta dentro de la carpeta raíz de tu proyecto. Esta nueva carpeta es el hogar de nuestra aplicación.

🔍 ¿Qué Hay Dentro de la Carpeta de Nuestra App libreta?

Si miras dentro de la nueva carpeta libreta, verás que Django generó automáticamente varios archivos y una carpeta. Estos son los más importantes para nosotros por ahora:

Estructura de la App 'libreta'

libreta/
├── migrations/         <-- Para los cambios en la base de datos
│   └── __init__.py
├── __init__.py         <-- Le dice a Python que esto es un paquete
├── admin.py            <-- Para registrar modelos en el admin
├── apps.py             <-- Configuración de la app
├── models.py           <-- ¡Aquí definiremos nuestras tablas!
├── tests.py            <-- Para escribir pruebas (tests)
└── views.py            <-- Lógica para mostrar cosas al usuario
                        

Desglosemos los más relevantes para empezar:

  • migrations/: Esta carpeta guardará los "archivos de migración". Cada vez que hagamos un cambio en la estructura de nuestras tablas (en models.py), Django creará un archivo aquí que describe ese cambio. Luego, el comando migrate usará estos archivos para actualizar la base de datos. Es como el historial de cambios de nuestras tablas.
  • __init__.py: Un archivo vacío que simplemente le indica a Python que la carpeta libreta debe ser tratada como un "paquete" de Python (un conjunto de módulos que se pueden importar).
  • admin.py: ¡Muy importante! Aquí es donde le diremos a Django qué modelos (tablas) de nuestra app libreta queremos que aparezcan y se puedan gestionar en el panel de administración que ya exploramos.
  • apps.py: Contiene la configuración específica de esta aplicación. Por ahora, no necesitaremos tocarlo mucho.
  • models.py: ¡Este es el corazón de los datos de nuestra app! Aquí es donde definiremos la estructura de nuestras tablas de la base de datos. Por ejemplo, aquí crearemos nuestro modelo "Proveedor", especificando qué campos tendrá (nombre, dirección, email, etc.).
  • tests.py: Para programadores más experimentados, aquí se escriben pruebas automáticas para asegurar que el código funciona correctamente. Por ahora, no nos meteremos con esto.
  • views.py: Las "vistas" en Django son las que manejan la lógica de qué mostrarle al usuario en el navegador. Por ejemplo, si queremos mostrar una lista de todos nuestros proveedores, la lógica para obtener esos proveedores de la base de datos y prepararlos para mostrarlos iría aquí. Tampoco lo usaremos en esta primera etapa del admin.

Nuestro Foco Inicial: Para empezar a trabajar con nuestros proveedores y verlos en el panel de administración, nos concentraremos principalmente en dos archivos dentro de nuestra app libreta:

  1. models.py: Para definir CÓMO son nuestros proveedores (qué información guardan).
  2. admin.py: Para decirle a Django QUE MUESTRE nuestros proveedores en el panel de administración.

El video de este capítulo te muestra cómo crear una app y te da un vistazo a estos archivos.

Pequeño Resumen del Capítulo 15 (Episodio 2)

Dentro de un proyecto Django, creamos "aplicaciones" (apps) para organizar diferentes partes de nuestra funcionalidad. Una app es como un módulo independiente. Se crea con el comando python manage.py startapp nombre_de_la_app (ej: libreta). Esto genera una nueva carpeta con varios archivos; los más importantes para nosotros al principio serán models.py (donde definiremos nuestras tablas de datos, como la de proveedores) y admin.py (para hacer que esas tablas aparezcan en el panel de administración de Django).

¡Ya tenemos nuestra app libreta creada! En el próximo capítulo, nos sumergiremos en el archivo models.py para definir, por fin, cómo será nuestra tabla de Proveedores.