Django es un framework gratuito en Python, con el que se han construido Instagram, parte de Pinterest y miles de sitios, paneles y tiendas más pequeños. Si un programador te ha propuesto una «aplicación en Django» o te hastopado con ese nombre al buscar tecnologías para tu propio proyecto, esta guía te explicará de forma sencilla qué es Django, para qué sirve y cuándo conviene elegir algo diferente.
Índice
- ¿Qué es Django?
- ¿De dónde viene y quién lo usa?
- ¿Cómo funciona Django? Modelo, vista, plantilla
- ¿Para qué es adecuado Django?
- ¿Cuándo Django no es una buena opción?
- ¿Django o WordPress, Laravel, Next.js?
- ¿Qué necesitas para ejecutar una aplicación Django?
- ¿Cuánto cuesta el hosting para Django?
- FAQ: Preguntas frecuentes sobre Django
¿Qué es Django?
Django es un framework web, es decir, un conjunto listo de herramientas y reglas para crear aplicaciones web con Python. En lugar de escribir desde cero el inicio de sesión de usuarios, la gestión de formularios, la conexión con la base de datos y la protección frente a ataques habituales, el programador recibe todo integrado y se centra en lo que hace único su proyecto.
Sus creadores lo describen con el lema «el framework web para perfeccionistas con plazos». Django refleja bien ese carácter: es completo y bastante cerrado en cuanto a cómo debe ser un proyecto, gracias a lo cual el equipo llega deprisa a una versión funcional y el código de distintos programistas tiene un aspecto similar.
Algunos datos básicos:
- Licencia: código abierto (BSD), sin costes, también en proyectos comerciales.
- Lenguaje: Python, uno de los lenguajes de programación más populares del mundo.
- Tipo: framework «con todo incluido» (en inglés, batteries included), es decir, con un gran número de módulos integrados.
- Versiones: actualmente se desarrollan las ramas 5.x y 6.x, se publica una nueva versión aproximadamente cada ocho meses y algunas versiones reciben soporte durante varios años (LTS).
Una distinción importante: Django no es un sitio web terminado ni una plataforma que se maneje haciendo clics, como WordPress. Es una base sobre la que el programador construye una aplicación. El propietario de una empresa normalmente no escribe código en Django, sino que encarga el proyecto y después utiliza el panel ya desarrollado.
¿De dónde surgió y quién lo utiliza?
Django nació en 2003 en la redacción del periódico Lawrence Journal-World, en Kansas. Los periodistas necesitaban servicios publicados al ritmo de una sala de prensa, por lo que los programadores crearon una herramienta que permitía poner en marcha una nueva sección del sitio en pocos días. En 2005 el código se hizo público y desde 2008 el proyecto está a cargo de la fundación independiente Django Software Foundation.
Con Django han utilizado o utilizan, entre otros:
- Instagram (una de las mayores instalaciones de Django del mundo),
- Pinterest durante sus primeros años,
- Mozilla (parte de sus servicios y complementos para Firefox),
- Disqus, Eventbrite, servicios de organizaciones gubernamentales y universidades.
En Polonia Django es popular entre consultoras de software, startups y empresas que desarrollan sistemas internos. La propia plataforma Saplo, desde la que lees este artículo, también está escrita en Django.
¿Cómo funciona Django? Modelo, vista, plantilla
Django divide una aplicación en tres capas. Sus creadores llaman a este diseño MTV (Modelo, Plantilla, Vista):
| Capa | De qué se ocupa | Ejemplo en una tienda |
|---|---|---|
| Modelo | descripción de los datos y su almacenamiento en la base de datos | un producto tiene nombre, precio y nivel de existencias |
| Vista (View) | lógica: qué hacer con la solicitud | obtener productos de la categoría «calzado» |
| Plantilla (Template) | aspecto de la página en HTML | lista de productos con imágenes y precios |
Cuando alguien introduce una dirección en el navegador, Django comprueba en el archivo de rutas (urls.py) qué vista debe gestionar la solicitud. La vista obtiene los datos mediante el modelo, los pasa a la plantilla y devuelve la página ya lista. El programador no escribe consultas SQL manualmente porque Django incorpora un ORM, es decir, un traductor entre el código Python y la base de datos.
Además, incluye módulos que en otras tecnologías hay que instalar:
- panel de administración generado automáticamente a partir de los modelos, listo para introducir datos desde el primer día,
- inicio de sesión, registro, permisos y grupos de usuarios,
- formularios con validación de datos,
- migraciones de la base de datos, es decir, cambios seguros en la estructura de las tablas a medida que evoluciona el proyecto,
- protección contra ataques habituales: CSRF, XSS, SQL injection, clickjacking,
- compatibilidad con varios idiomas y zonas horarias,
- caché, envío de correos, mapas del sitio y canales RSS.
El panel de administración suele ser el argumento más sólido para las empresas. El cliente recibe un espacio cómodo para gestionar los datos, incluso antes de que se desarrolle el front-end definitivo de la aplicación.
¿Para qué sirve Django?
Django funciona bien allí donde importan los datos, los usuarios y la lógica de negocio, y no solo el aspecto visual del sitio. Usos típicos:
- Sistemas internos de empresas: CRM, reservas, registro de solicitudes, circulación de documentos y panel para empleados.
- Plataformas con cuentas de usuario: portales con suscripción de pago, cursos en línea, sitios de anuncios clasificados y marketplaces.
- Backend API para aplicaciones móviles y frontends con React o Vue, normalmente con Django REST Framework.
- Servicios con mucho contenido: portales informativos, catálogos y bases de conocimiento (en Django funciona, entre otros, el CMS Wagtail).
- Proyectos de análisis de datos e IA: Python es el principal lenguaje de aprendizaje automático, por lo que el modelo, los scripts analíticos y la aplicación web pueden vivir en un mismo ecosistema.
- Tiendas con lógica poco habitual: configuradores de productos, venta mayorista B2B con listas de precios personalizadas (por ejemplo, Saleor, Django Oscar).
El denominador común: un proyecto en el que un CMS listo para usar empieza a estorbar, porque hay que adaptarlo con plugins a cosas para las que no fue creado.
¿Cuándo Django no es una buena elección?
Sinceramente: no todos los proyectos necesitan un framework. Django será una exageración cuando:
- necesitas una simple página de presentación o un blog, que editará una persona sin conocimientos técnicos. Aquí WordPress gana en rapidez de puesta en marcha y número de temas listos,
- no tienes programador ni planeas tenerlo. Cada cambio en una aplicación Django implica trabajar con código,
- creas una tienda sencilla con un surtido típico. WooCommerce o una plataforma de comercio lista serán más rápidos y baratos,
- el proyecto es principalmente un frontend interactivo (animaciones, aplicación que funciona en el navegador), y el backend es mínimo. En ese caso, Next.js puede ser más natural.
Buena regla: si la descripción del proyecto suena a «sitio web», empieza por un CMS. Si suena a «sistema» o «aplicación», Django es un candidato sólido.
¿Django o WordPress, Laravel, Next.js?
| Criterio | Django | WordPress | Laravel | Next.js |
|---|---|---|---|---|
| Lenguaje | Python | PHP | PHP | JavaScript / TypeScript |
| Tipo | framework | CMS listo para usar | framework | framework (frontend + servidor) |
| Panel de administración | integrado, con modelos | integrado | complementos (p. ej., Filament) | no disponible, hay que crearlo |
| Sin programador | no | sí | no | no |
| Ideal para | sistemas, API, datos | sitios web y blogs | sistemas en PHP | frontends rápidos, SaaS |
| Hosting | servidor con Python | hosting PHP normal | hosting PHP | Node.js o Vercel |
Hablamos con más detalle de las diferencias entre un CMS listo para usar y un framework en la comparación WordPress o Next.js para la web de una empresa y en el artículo Qué es Next.js. La elección entre Django y Laravel suele depender del lenguaje en el que trabaja el equipo, ya que ambos frameworks ofrecen capacidades comparables.
¿Qué necesitas para ejecutar una aplicación Django?
Aquí mucha gente se sorprende al descubrir que una aplicación Django no se despliega en un hosting compartido normal que solo admita PHP. Necesitas:
- Python en la versión adecuada (Django 5.x funciona con Python 3.10 y posteriores),
- servidor de aplicaciones, normalmente gunicorn, que ejecuta el código en Python,
- servidor web, por ejemplo nginx, que recibe el tráfico de internet y lo redirige a gunicorn y, además, sirve los archivos estáticos,
- base de datos: SQLite para empezar, PostgreSQL con mayor tráfico,
- proceso supervisor, que vuelve a levantar la aplicación tras una caída o el reinicio del servidor,
- certificado SSL y un Dominio conectado.
En tu propio VPS, tienes que instalar y configurar todo esto manualmente y mantener actualizado el sistema. Para un programador son unas horas de trabajo; para el dueño de una empresa, suele ser una barrera difícil de superar.
En Saplo, esta fase está automatizada. Al crear una aplicación Django en el panel, eliges la versión de Python (3.11 o 3.12) y el instalador se encarga de crear el entorno virtual, instalar Django 5.x, ejecutar gunicorn bajo la supervisión del proceso supervisor en el puerto 8000, configurar nginx delante de la aplicación, añadir el Dominio a ALLOWED_HOSTS y emitir un certificado SSL gratuito. Starter funciona con SQLite y, cuando la aplicación utiliza una base de datos independiente, su dirección se añade al proceso mediante la variable DATABASE_URL.
El código propio se despliega desde un repositorio de GitHub: una vez conectado el repositorio, cada git push en la rama de producción inicia la compilación y el despliegue de una nueva versión, normalmente en 1 a 3 minutos. Hemos descrito los detalles paso a paso en la guía Cómo desplegar una aplicación Django en Saplo. Si el proyecto combina un backend en Django con un frontend en React, también hay una opción lista para usar: Django + React en un solo dominio, sin tener que configurar CORS.
¿Ya tienes una aplicación Django funcionando con otro proveedor? La Migración a Saplo es gratuita en todos los planes. Solo tienes que enviar el proyecto mediante el formulario de Migración.
¿Cuánto cuesta el hosting para Django?
El framework en sí es gratuito, solo pagas por el servidor. En el mercado encontrarás tres enfoques:
- VPS sin gestión: el más barato en cuota, pero la configuración y la seguridad dependen de ti.
- Plataformas PaaS (p. ej., Heroku, Render): despliegues sencillos desde Git, con facturación mensual en dólares y un coste que crece a medida que aumentan el número de servicios y la base de datos.
- Hosting con un entorno listo para Python, como Saplo: despliegues desde Git y una única cuota anual en euros.
Una aplicación Django en Saplo necesita un mínimo de 256 MB de RAM y 2 GB de disco, por lo que un proyecto pequeño ya cabrá en el plan más básico. Los planes de Saplo (el precio del primer año es igual al de la renovación) son los siguientes:
| Plan | Precio / año | RAM | Disco | SSH | Copias de seguridad |
|---|---|---|---|---|---|
| Box S | 27 € | 1 GB | 15 GB | no (panel, SFTP) | ninguna |
| Box M | 65 € | 2 GB | 30 GB | sí | ninguna |
| Box L | 139 € | 6 GB | 60 GB | sí | 7 días |
| Box XL | 299 € | 12 GB | 150 GB | sí | 14 días |
En la práctica, Box S bastará para un prototipo o un pequeño panel interno. Un desarrollador que quiera acceder al servidor por SSH (p. ej., para ejecutar manage.py shell o consultar los registros) necesitará al menos Box M. Una aplicación de producción con una base de datos PostgreSQL, tareas en segundo plano y tráfico real se sentirá cómoda desde Box L, que además incluye copias de seguridad diarias con una retención de 7 días. Puedes consultar la comparación completa en los precios de Saplo.
Resumen
Django es un framework maduro y gratuito para Python que ofrece desde el primer día un panel de administración, inicio de sesión, base de datos y seguridad. Funciona mejor en sistemas empresariales, plataformas con cuentas de usuario, API y proyectos relacionados con datos. Para una simple tarjeta de visita o un blog, será mejor WordPress. Si ya tienes un proyecto en Django o estás a punto de pedirlo, puedes ejecutarlo en Saplo con despliegues desde Git y sin configurar manualmente el servidor.
FAQ: preguntas más frecuentes sobre Django
¿Django es gratuito? Sí. Django es de código abierto bajo licencia BSD y se puede usar sin costes también en proyectos comerciales. Los costes son el trabajo del programador y el servidor en el que se ejecuta la aplicación.
¿Django es adecuado para programadores principiantes? Sí, siempre que conozcas los fundamentos de Python. La documentación oficial incluye un tutorial completo, y la comunidad polaca Django Girls lleva años organizando talleres gratuitos para personas que empiezan desde cero.
¿Django es rápido y soporta un tráfico elevado? Sí. El rendimiento depende principalmente de la arquitectura de la aplicación, la base de datos y la caché, no del framework en sí. La mejor prueba es Instagram, que gestiona cientos de millones de usuarios con Django.
¿Puedo instalar Django en un hosting tradicional? No es posible en un hosting compartido típico que solo admita PHP. Necesitas un servidor con Python, un servidor de aplicaciones (p. ej. gunicorn) y nginx. En Saplo, todo este entorno se configura automáticamente al crear la aplicación. Los detalles están en la página hosting de Django.
¿Cuánta memoria RAM necesita una aplicación Django? Una aplicación pequeña ya funciona con 256 MB de RAM. Un proyecto en producción con una base de datos PostgreSQL, tareas en segundo plano (p. ej. Celery) y mayor tráfico conviene dimensionarlo entre 2 y 6 GB de RAM.
- #Django
- #Framework
- #Hosting Django
- #Python
