Django es un framework web de alto nivel que fomenta el desarrollo rápido y limpio, con un diseño pragmático. Desarrollado por programadores experimentados, Django se encarga de gran parte de las complicaciones del desarrollo web, para que puedas enfocarte en escribir tu aplicación sin necesidad de reinventar la rueda.
Django fue creado entre 2003 y 2005 por la web team del periódico Lawrence Journal-World en Kansas, USA. Inicialmente, el framework se llamó "Django" en honor al guitarrista de jazz Django Reinhardt.
En 2005 fue liberado bajo licencia BSD, y para 2008 se formó la Django Software Foundation para mantener el proyecto.
Django ofrece ventajas significativas cuando necesitas:
Antes de instalar Django 5, es importante contar con los requisitos previos:
Primero, asegúrate de tener instalada la versión correcta de Python:
python --version
# o en algunos sistemas:
python3 --version
Es recomendable aislar tus proyectos en entornos virtuales:
# En Windows
python -m venv myenv
# En macOS/Linux
python3 -m venv myenv
# En Windows
myenv\Scripts\activate
# En macOS/Linux
source myenv/bin/activate
Con el entorno virtual activo, instala Django 5:
pip install django
Confirma que Django se ha instalado correctamente:
python -c "import django; print(django.get_version())"
Si aparece la versión 5.x.x, ¡felicidades! Has instalado Django 5 correctamente.
Intenta completar estos comandos para configurar tu entorno de desarrollo Django:
Crea un entorno virtual llamado "django_env":
Activa el entorno virtual (en Windows):
Instala Django:
Cuando creas un proyecto Django, se genera una estructura de archivos específica. Vamos a ver cómo se crea un proyecto y qué significa cada parte.
Para crear un nuevo proyecto Django, usa el siguiente comando:
django-admin startproject mi_proyecto
Esto generará la siguiente estructura de archivos:
mi_proyecto/
manage.py
mi_proyecto/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
Archivo | Descripción |
---|---|
manage.py |
Una utilidad de línea de comandos que te permite interactuar con tu proyecto Django de varias formas. |
__init__.py |
Un archivo vacío que le dice a Python que este directorio debe ser considerado un paquete. |
settings.py |
Configuraciones para el proyecto Django. Aquí es donde registras las aplicaciones, configuras la base de datos, etc. |
urls.py |
Las declaraciones de URLs para el proyecto; una "tabla de contenidos" de tu sitio Django. |
asgi.py |
Un punto de entrada para servidores web compatibles con ASGI para servir tu proyecto. |
wsgi.py |
Un punto de entrada para servidores web compatibles con WSGI para servir tu proyecto. |
En Django, un proyecto puede contener múltiples aplicaciones. Cada aplicación es un módulo de Python que sigue una convención y proporciona un conjunto específico de características.
python manage.py startapp mi_aplicacion
Esto generará la siguiente estructura:
mi_aplicacion/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
Django sigue un patrón arquitectónico similar al MVC (Modelo-Vista-Controlador), pero con una terminología ligeramente diferente, conocida como MVT (Modelo-Vista-Template).
Cuando un usuario hace una solicitud a una aplicación Django, ocurre el siguiente proceso:
Imagen: Flujo del patrón MVT en Django
# Crear un entorno virtual
python -m venv django_tutorial
# Activar el entorno virtual
# En Windows:
django_tutorial\Scripts\activate
# En macOS/Linux:
source django_tutorial/bin/activate
pip install django
django-admin startproject mi_primer_proyecto
cd mi_primer_proyecto
python manage.py runserver
Si todo ha ido bien, podrás acceder a tu proyecto Django en http://127.0.0.1:8000/ y ver la página de bienvenida de Django.
La página de bienvenida confirma que tu instalación de Django funciona correctamente. Es una página que Django muestra automáticamente cuando no has definido ninguna vista para la URL raíz de tu proyecto.
Comprueba tus conocimientos sobre este módulo respondiendo las siguientes preguntas:
1. ¿En qué lenguaje de programación está escrito Django?
2. ¿Qué comando se utiliza para crear un nuevo proyecto Django?
3. ¿Qué patrón arquitectónico utiliza Django?
4. ¿Cuál es la versión mínima de Python requerida para Django 5?
5. ¿Qué archivo se utiliza para definir la configuración de un proyecto Django?