Desplegar una aplicación Django implica moverla desde tu entorno de desarrollo local a un servidor donde pueda ser accesible por los usuarios. Este proceso puede parecer intimidante al principio, pero con una comprensión clara de los pasos involucrados, se puede manejar de manera efectiva. En esta sección, cubriremos los conceptos básicos y avanzados del despliegue de aplicaciones Django.
- Preparativos para el Despliegue
Antes de desplegar tu aplicación, hay varios pasos preliminares que debes seguir:
1.1. Configuración del Entorno de Producción
- Configuración de
settings.py
: Django utiliza un archivo de configuración (settings.py
) que debe ser ajustado para el entorno de producción.- DEBUG: Asegúrate de que
DEBUG
esté configurado enFalse
. - ALLOWED_HOSTS: Define los dominios y direcciones IP que pueden servir tu aplicación.
- DATABASES: Configura la base de datos de producción.
- STATIC_ROOT: Define el directorio donde se recopilarán los archivos estáticos.
- DEBUG: Asegúrate de que
# settings.py DEBUG = False ALLOWED_HOSTS = ['tu-dominio.com', 'www.tu-dominio.com'] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'nombre_de_tu_base_de_datos', 'USER': 'tu_usuario', 'PASSWORD': 'tu_contraseña', 'HOST': 'localhost', 'PORT': '5432', } } STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
1.2. Recolección de Archivos Estáticos
- Comando
collectstatic
: Este comando recopila todos los archivos estáticos en el directorio definido porSTATIC_ROOT
.
1.3. Configuración de Variables de Entorno
- Variables Sensibles: Utiliza variables de entorno para manejar información sensible como claves secretas y configuraciones de base de datos.
- Elección del Servidor
Existen varias opciones para desplegar aplicaciones Django. Aquí cubriremos dos de las más populares: Heroku y DigitalOcean.
2.1. Despliegue en Heroku
Heroku es una plataforma como servicio (PaaS) que facilita el despliegue de aplicaciones web.
Pasos para Desplegar en Heroku
- Instalar Heroku CLI: Descarga e instala la herramienta de línea de comandos de Heroku.
- Iniciar Sesión en Heroku: Autentícate en Heroku.
- Crear un Nuevo Proyecto en Heroku: Crea una nueva aplicación en Heroku.
- Configurar el Archivo
Procfile
: Define el comando que Heroku debe usar para ejecutar tu aplicación.
- Configurar el Archivo
requirements.txt
: Asegúrate de que todas las dependencias estén listadas.
- Configurar el Archivo
runtime.txt
: Especifica la versión de Python.
- Desplegar la Aplicación: Usa Git para desplegar tu aplicación en Heroku.
- Migrar la Base de Datos: Ejecuta las migraciones en Heroku.
2.2. Despliegue en DigitalOcean
DigitalOcean es un proveedor de infraestructura en la nube que ofrece servidores virtuales (droplets).
Pasos para Desplegar en DigitalOcean
-
Crear un Droplet: Inicia sesión en DigitalOcean y crea un nuevo droplet con Ubuntu.
-
Acceder al Droplet: Usa SSH para acceder a tu droplet.
- Instalar Dependencias: Instala Python, pip, y otros paquetes necesarios.
- Configurar el Entorno Virtual: Crea y activa un entorno virtual.
- Instalar Dependencias del Proyecto: Instala las dependencias listadas en
requirements.txt
.
- Configurar Gunicorn: Instala y configura Gunicorn para servir tu aplicación.
- Configurar Nginx: Configura Nginx para servir tu aplicación.
server { listen 80; server_name tu_dominio.com www.tu_dominio.com; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /static/ { alias /ruta/a/tu/proyecto/staticfiles/; } }
- Reiniciar Nginx: Aplica los cambios y reinicia Nginx.
- Conclusión
Desplegar una aplicación Django puede parecer complejo, pero siguiendo estos pasos puedes hacerlo de manera efectiva. Ya sea que elijas Heroku por su simplicidad o DigitalOcean por su flexibilidad, entender los fundamentos del despliegue te permitirá llevar tus aplicaciones Django a producción con confianza.
Resumen
- Configuración del Entorno de Producción: Ajusta
settings.py
, recolecta archivos estáticos y configura variables de entorno. - Elección del Servidor: Heroku y DigitalOcean son opciones populares con diferentes ventajas.
- Pasos de Despliegue: Sigue los pasos específicos para cada plataforma para desplegar tu aplicación.
Con estos conocimientos, estás listo para desplegar tu aplicación Django y hacerla accesible al mundo. En el próximo tema, exploraremos las mejores prácticas de seguridad para mantener tu aplicación segura en producción.
Curso de Desarrollo Web con Django
Módulo 1: Introducción a Django
- ¿Qué es Django?
- Configuración del Entorno de Desarrollo
- Creando tu Primer Proyecto Django
- Entendiendo la Estructura del Proyecto Django
Módulo 2: Conceptos Básicos de Django
- Aplicaciones Django y Estructura del Proyecto
- Enrutamiento de URL y Vistas
- Plantillas y Archivos Estáticos
- Modelos y Bases de Datos
- Interfaz de Administración de Django
Módulo 3: Django Intermedio
- Manejo de Formularios
- Vistas Basadas en Clases
- Autenticación de Usuarios
- Middleware
- Carga de Archivos
Módulo 4: Django Avanzado
- Consultas Avanzadas con Django ORM
- Modelos de Usuario Personalizados
- Señales de Django
- Pruebas en Django
- Optimización del Rendimiento