Episodio 2, Capítulo 12

Estructura de Directorios del Proyecto Django

⏱️ Tiempo de lectura: 7 minutos
🧩 Actividades: 0 (Conceptual)
📚 Nivel: Principiante

🗺️ El Mapa del Tesoro: Entendiendo las Carpetas y Archivos

Cuando creamos nuestro proyecto Django con el comando django-admin startproject agenda ., Django no solo creó un proyecto vacío, sino que armó una estructura de carpetas y archivos con un propósito específico. Entender esta estructura es como tener el mapa de una ciudad nueva: te ayuda a saber dónde estás y hacia dónde ir.

Si miras tu explorador de archivos (o el panel lateral de VS Code), dentro de la carpeta principal donde iniciaste el proyecto (llamémosla ProyectoRaiz, que podría ser "MisProyectosDjango/agenda" si seguiste los ejemplos anteriores), verás algo así:

Estructura del Proyecto (Ejemplo: agenda)

ProyectoRaiz/
├── agenda/         <-- Carpeta de la aplicación principal del proyecto
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py <-- ¡Muy importante! Configuraciones.
│   ├── urls.py     <-- ¡Muy importante! Rutas/direcciones.
│   └── wsgi.py
├── manage.py       <-- ¡Tu mejor amigo! El comandante.
└── venv/           <-- Tu entorno virtual (si lo creaste aquí)
└── db.sqlite3      <-- La base de datos (se crea después del primer 'migrate')
                        

¡No te abrumes! Vamos a desglosar las piezas más importantes por ahora.

1. Carpeta Raíz del Proyecto (ProyectoRaiz)

Esta es la carpeta que contiene todo tu proyecto Django. Si llamaste a tu proyecto "agenda" y usaste el punto (.) al final del comando startproject, esta carpeta podría llamarse directamente "agenda" o el nombre que le diste a la carpeta contenedora donde ejecutaste el comando. Es el contenedor principal.

2. El Comandante: manage.py

Este archivo es una utilidad de línea de comandos súper poderosa. Ya lo usamos para runserver (correr el servidor), migrate (aplicar cambios a la base de datos) y createsuperuser (crear nuestro usuario administrador). Es la herramienta principal para interactuar con tu proyecto Django desde la terminal. ¡Te harás muy amigo de él!

Herramienta multifunción

manage.py es como la navaja suiza de tu proyecto Django.

3. La Carpeta de la Aplicación Principal del Proyecto (agenda/ - la interna)

Dentro de tu carpeta raíz, Django crea otra carpeta con el mismo nombre que le diste a tu proyecto (en nuestro ejemplo, agenda). Esta carpeta interna contiene los archivos de configuración y las definiciones principales de tu proyecto. Los más importantes para empezar son:

  • settings.py (Configuraciones): ¡Este es el cerebro de la configuración de tu proyecto! Aquí se define todo:
    • Cómo se conecta a la base de datos.
    • Qué aplicaciones (módulos) están instaladas (tanto las de Django como las que creemos nosotros).
    • Configuraciones de seguridad.
    • Información sobre archivos estáticos (CSS, JavaScript, imágenes).
    • ¡Y mucho más! Lo iremos explorando de a poco.
  • urls.py (Rutas/Direcciones): Este archivo es como el mapa de calles de tu sitio web. Aquí defines qué vista (qué parte de tu código) se debe ejecutar cuando un usuario visita una dirección específica (URL) en tu sitio. Por ejemplo, defines que si alguien va a tusitio.com/contacto, se muestre la página de contacto.
  • __init__.py: Un archivo vacío que le dice a Python que esta carpeta debe ser considerada como un paquete de Python (un conjunto de módulos). No necesitas tocarlo.
  • asgi.py y wsgi.py: Estos archivos se relacionan con la forma en que tu aplicación Django se comunica con los servidores web cuando la despliegas en producción (es decir, cuando la pones online para que todo el mundo la vea). Por ahora, no nos preocuparemos demasiado por ellos.

4. La Base de Datos por Defecto: db.sqlite3

Cuando ejecutaste el comando python manage.py migrate por primera vez (en el capítulo 9), Django creó automáticamente un archivo llamado db.sqlite3 en la carpeta raíz de tu proyecto. ¡Esa es tu base de datos!

SQLite es un sistema de gestión de bases de datos muy ligero y fácil de usar que viene integrado con Python. Guarda toda la base de datos en un solo archivo. Es perfecto para empezar a desarrollar y para proyectos pequeños o medianos. Más adelante, si tu aplicación crece mucho y necesita más potencia, Django te permite cambiar fácilmente a bases de datos más robustas como PostgreSQL o MySQL, ¡pero para aprender, SQLite es nuestro gran aliado!

¿Y mi entorno virtual venv/? Si creaste tu entorno virtual dentro de la carpeta raíz del proyecto, también lo verás ahí. Recuerda que esta carpeta contiene una copia aislada de Python y todas las librerías (como Django) que instalemos específicamente para este proyecto.

Un recorrido visual por estas carpetas y archivos te espera en el video de este capítulo.

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

Al crear un proyecto Django, se genera una estructura de carpetas y archivos específica. Las partes clave son: la carpeta raíz del proyecto; el archivo manage.py (nuestro "comandante"); una carpeta interna con el nombre del proyecto que contiene settings.py (configuraciones) y urls.py (rutas); y, después de la primera migración, un archivo db.sqlite3 que es nuestra base de datos por defecto. Entender esta estructura nos ayudará a saber dónde encontrar y modificar cada parte de nuestra aplicación.

Con este mapa básico de nuestro proyecto, ya estamos más preparados para empezar a construir. En el siguiente capítulo, profundizaremos en cómo Django maneja los datos y cómo se relacionan con las bases de datos.