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.
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.
libreta
Al igual que para crear el proyecto, usamos nuestro fiel amigo manage.py
para crear una nueva app.
Control + C
.
manage.py
) y que tu entorno virtual esté activado. Luego, ejecuta:
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.
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:
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
:
models.py
: Para definir CÓMO son nuestros proveedores (qué información guardan).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.
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.