Django: Introducción y entorno

Descubre cómo configurar el entorno y entender la arquitectura MVT en Django para crear aplicaciones web escalables y seguras con Python.

Aprende Django GRATIS y certifícate

Introducción y entorno

Django es un framework web de alto nivel para Python que facilita el desarrollo rápido y limpio de aplicaciones web. Creado en 2005, Django sigue el principio "Don't Repeat Yourself" (DRY) y el patrón arquitectónico Model-View-Template (MVT), proporcionando una estructura sólida para construir aplicaciones web escalables.

¿Qué es Django?

Django se define como un framework web completo que incluye todo lo necesario para desarrollar aplicaciones web modernas. A diferencia de otros frameworks minimalistas, Django viene con una amplia gama de funcionalidades integradas que aceleran el proceso de desarrollo.

Las características principales de Django incluyen:

  • ORM integrado para interactuar con bases de datos sin escribir SQL
  • Sistema de autenticación robusto y seguro
  • Panel de administración automático para gestionar contenido
  • Sistema de plantillas flexible para generar HTML dinámico
  • Manejo de formularios con validación automática
  • Middleware personalizable para procesar peticiones y respuestas

Arquitectura MVT

Django implementa el patrón Model-View-Template, una variación del conocido patrón MVC:

  • Model: Define la estructura de datos y la lógica de negocio
  • View: Contiene la lógica de presentación y maneja las peticiones HTTP
  • Template: Se encarga de la presentación visual y el renderizado HTML

Esta separación de responsabilidades facilita el mantenimiento del código y permite que diferentes desarrolladores trabajen en distintas capas sin interferir entre sí.

Preparación del entorno de desarrollo

Para trabajar con Django necesitamos configurar un entorno de desarrollo adecuado. El primer paso es verificar que tenemos Python instalado en nuestro sistema:

python --version

Django requiere Python 3.8 o superior, siendo Python 3.13 la versión más reciente que ofrece mejoras en rendimiento y nuevas características.

Entornos virtuales

Los entornos virtuales son fundamentales en el desarrollo con Django. Permiten aislar las dependencias de cada proyecto, evitando conflictos entre diferentes versiones de paquetes:

python -m venv mi_proyecto_django

Para activar el entorno virtual:

En Windows:

mi_proyecto_django\Scripts\activate

En macOS/Linux:

source mi_proyecto_django/bin/activate

Una vez activado, el prompt del terminal mostrará el nombre del entorno virtual, indicando que estamos trabajando dentro del entorno aislado.

Instalación de Django

Con el entorno virtual activado, instalamos Django usando pip:

pip install Django==5.2

Django 5.2 incluye mejoras significativas en rendimiento, nuevas características de seguridad y mejor compatibilidad con Python 3.13. Podemos verificar la instalación ejecutando:

django-admin --version

Estructura de un proyecto Django

Django organiza el código en proyectos y aplicaciones. Un proyecto es el contenedor principal que puede incluir múltiples aplicaciones, cada una con una funcionalidad específica.

Para crear un nuevo proyecto:

django-admin startproject mi_sitio_web

Esta instrucción genera la siguiente estructura de directorios:

mi_sitio_web/
    manage.py
    mi_sitio_web/
        __init__.py
        settings.py
        urls.py
        wsgi.py
        asgi.py

Archivos principales

  • manage.py: Utilidad de línea de comandos para interactuar con el proyecto
  • settings.py: Configuración principal del proyecto
  • urls.py: Definición de rutas URL del proyecto
  • wsgi.py: Punto de entrada para servidores web compatibles con WSGI
  • asgi.py: Punto de entrada para aplicaciones asíncronas

Primer servidor de desarrollo

Django incluye un servidor de desarrollo integrado que facilita las pruebas locales. Para iniciarlo, navegamos al directorio del proyecto y ejecutamos:

cd mi_sitio_web
python manage.py runserver

El servidor se inicia por defecto en http://127.0.0.1:8000/. Al acceder a esta dirección desde el navegador, veremos la página de bienvenida de Django, confirmando que la instalación fue exitosa.

El servidor de desarrollo incluye recarga automática, lo que significa que detecta cambios en el código y reinicia automáticamente, agilizando el proceso de desarrollo.

Configuración básica

El archivo settings.py contiene la configuración principal del proyecto. Algunas configuraciones importantes incluyen:

  • DEBUG: Controla el modo de depuración
  • ALLOWED_HOSTS: Lista de hosts permitidos para servir la aplicación
  • DATABASES: Configuración de la base de datos
  • INSTALLED_APPS: Aplicaciones habilitadas en el proyecto

Django utiliza SQLite como base de datos por defecto, lo que es ideal para desarrollo ya que no requiere configuración adicional. La base de datos se crea automáticamente en el archivo db.sqlite3.

Aplicaciones Django

Las aplicaciones Django son módulos reutilizables que encapsulan funcionalidades específicas. Para crear una nueva aplicación:

python manage.py startapp blog

Esto genera una estructura de directorios con los archivos necesarios para desarrollar la funcionalidad de la aplicación:

blog/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py
    migrations/

Cada aplicación debe registrarse en INSTALLED_APPS dentro de settings.py para que Django la reconozca:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',  # Nueva aplicación
]

Esta estructura modular permite organizar el código de manera lógica y mantenible, facilitando el desarrollo de aplicaciones web complejas mediante la combinación de múltiples aplicaciones especializadas.

Empezar curso de Django

Lecciones de este módulo de Django

Lecciones de programación del módulo Introducción y entorno del curso de Django.