Ahorre 15% en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código: Skills Comenzar
Secciones
Administración Linux

Cómo Instalar Django en un Servidor de Hosting: Una Guía Completa Paso a Paso

Django es un framework web Python de alto nivel diseñado para fomentar el desarrollo rápido y un diseño limpio y pragmático. Sigue siendo una de las opciones más populares para construir aplicaciones web escalables, seguras y mantenibles, desde blogs simples hasta plataformas empresariales complejas. En esta guía completa, te guiaremos a través de cada paso necesario para instalar Django en un servidor de hosting, desde preparar tu entorno Linux hasta ejecutar tu primer proyecto y prepararlo para producción.

¿Por qué elegir Django para tu aplicación web?

Antes de sumergirte en el proceso de instalación, vale la pena entender por qué Django continúa dominando el panorama del desarrollo web en Python:

  • Baterías incluidas: Django viene con autenticación integrada, panel de administración, ORM, manejo de formularios y características de seguridad listos para usar.
  • Escalabilidad: Django potencia plataformas de alto tráfico como Instagram y Pinterest.
  • Diseño orientado a la seguridad: Django protege contra vulnerabilidades comunes incluyendo inyección SQL, XSS, CSRF y clickjacking por defecto.
  • Desarrollo rápido: Su filosofía de convención sobre configuración permite a los desarrolladores lanzar funciones más rápido.
  • Ecosistema masivo: Miles de paquetes reutilizables y una gran comunidad significan que ya existen soluciones para casi cualquier problema.

Para aprovechar al máximo Django, querrás un entorno de servidor confiable. Un plan de Alojamiento VPS te proporciona el acceso root, recursos dedicados y flexibilidad que las aplicaciones Django demandan.

Requisitos previos

Antes de comenzar el proceso de instalación, asegúrate de tener lo siguiente en su lugar:

  • Un servidor de hosting que ejecute una distribución Linux (se recomiendan Ubuntu 20.04/22.04 o Debian)
  • Acceso SSH al servidor con privilegios sudo
  • Python 3.8 o superior (se recomienda Python 3.10+)
  • pip (gestor de paquetes de Python) instalado
  • Familiaridad básica con la línea de comandos de Linux

> Consejo profesional: Si ejecutas una aplicación Django en producción, evita los entornos de hosting compartido. Un plan de VPS Hosting o un Servidor Dedicado te darán el control y el rendimiento que tu aplicación necesita.

Paso 1: Conectarse a su servidor a través de SSH

Abra su terminal y establezca una conexión SSH a su servidor de hosting:

ssh username@server_ip

Reemplace username con su nombre de usuario del sistema real y server_ip con la dirección IP pública de su servidor. Si está utilizando un puerto SSH personalizado o un archivo de autenticación basado en claves, ajuste el comando en consecuencia:

ssh -i /path/to/your/key.pem username@server_ip

Una vez conectado, tendrá una interfaz de línea de comandos en su servidor donde puede comenzar el proceso de configuración.

Paso 2: Actualizar tu Sistema e Instalar Python & pip

Mantener los paquetes de tu sistema actualizados es un paso crítico tanto para la seguridad como para la compatibilidad.

Actualizar el Índice de Paquetes

sudo apt update && sudo apt upgrade -y

Instalar Python 3 y pip

La mayoría de las distribuciones modernas de Ubuntu y Debian incluyen Python 3 preinstalado. Verifica tu versión de Python primero:

python3 --version

Si Python 3 no está instalado, o necesitas pip, instálalos con:

sudo apt install python3 python3-pip -y

Verifica las instalaciones:

python3 --version
pip3 --version

Deberías ver números de versión confirmando que ambas herramientas están disponibles.

Paso 3: Configurar un Entorno Virtual de Python

Usar un entorno virtual no es solo recomendado — se considera una mejor práctica para cada proyecto de Python. Los entornos virtuales aíslan las dependencias de tu proyecto de la instalación de Python en todo el sistema y de otros proyectos en el mismo servidor, previniendo conflictos de versiones y manteniendo tu entorno limpio.

Instalar virtualenv

sudo pip3 install virtualenv

Alternativamente, puedes usar el módulo venv integrado de Python (disponible en Python 3.3+):

sudo apt install python3-venv -y

Crear tu Directorio de Proyecto y Entorno Virtual

Navega al directorio donde deseas alojar tu proyecto, o crea uno nuevo:

mkdir myproject
cd myproject

Ahora crea el entorno virtual dentro de tu directorio de proyecto:

virtualenv venv

O, usando el módulo venv integrado:

python3 -m venv venv

Activar el Entorno Virtual

source venv/bin/activate

Una vez activado, tu símbolo del sistema cambiará para mostrar el nombre del entorno virtual, por ejemplo:

(venv) username@server:~/myproject$

Todos los comandos pip install ejecutados mientras el entorno virtual esté activo instalarán paquetes solo dentro de este entorno aislado. Para desactivarlo en cualquier momento, simplemente ejecuta:

deactivate

Paso 4: Instalar Django

Con tu entorno virtual activo, instala Django usando pip:

pip install django

Para instalar una versión específica de Django (recomendado para producción para garantizar compatibilidad):

pip install django==4.2

Verifica la instalación:

django-admin --version

Deberías ver el número de versión de Django instalado impreso en la terminal.

Paso 5: Crear un nuevo proyecto Django

Usa la herramienta de línea de comandos integrada de Django para crear un nuevo proyecto:

django-admin startproject myproject .

> Nota: El punto final (.) le indica a Django que cree los archivos del proyecto en el directorio actual en lugar de crear un subdirectorio anidado. Esta es una estructura más limpia para la mayoría de implementaciones.

Tu directorio de proyecto ahora contendrá la siguiente estructura:

myproject/
├── manage.py
└── myproject/
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
  • manage.py — Una utilidad de línea de comandos para interactuar con tu proyecto Django.
  • settings.py — El archivo de configuración central de tu proyecto.
  • urls.py — La configuración de enrutamiento de URL.
  • wsgi.py / asgi.py — Puntos de entrada para servidores web compatibles con WSGI y ASGI.

Paso 6: Configurar los ajustes de la base de datos

Abre el archivo settings.py para configurar tu conexión a la base de datos:

nano myproject/settings.py

Por defecto: SQLite (Solo desarrollo)

Por defecto, Django está configurado para usar SQLite, que es adecuado para desarrollo y pruebas pero no se recomienda para producción:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

Opción de producción: PostgreSQL

PostgreSQL es la base de datos más comúnmente recomendada para Django en producción. Primero, instala los paquetes requeridos:

sudo apt install postgresql postgresql-contrib libpq-dev -y
pip install psycopg2-binary

Luego actualiza el ajuste DATABASES en settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

Opción de producción: MySQL / MariaDB

Si prefieres MySQL o MariaDB, instala el adaptador requerido:

sudo apt install default-libmysqlclient-dev -y
pip install mysqlclient

Luego configura el ajuste DATABASES:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

Configurar ALLOWED_HOSTS

Mientras estés en settings.py, también actualiza el ajuste ALLOWED_HOSTS para incluir la dirección IP o nombre de dominio de tu servidor. Esto es necesario para que Django sirva solicitudes en modo sin depuración:

ALLOWED_HOSTS = ['your_server_ip', 'yourdomain.com', 'www.yourdomain.com']

Paso 7: Aplicar Migraciones de Base de Datos

Django utiliza un sistema de migración para gestionar cambios en el esquema de la base de datos. Ejecuta las migraciones iniciales para crear todas las tablas de base de datos necesarias:

python manage.py migrate

Verás una salida listando cada migración siendo aplicada. Una migración exitosa se ve así:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  ...

Crear un Superusuario (Opcional pero Recomendado)

Crea una cuenta de administrador para acceder a la interfaz de administración integrada de Django:

python manage.py createsuperuser

Se te pedirá que ingreses un nombre de usuario, dirección de correo electrónico y contraseña.

Paso 8: Ejecutar el servidor de desarrollo de Django

Ahora puedes iniciar el servidor de desarrollo integrado de Django para verificar tu instalación:

python manage.py runserver 0.0.0.0:8000

Este comando vincula el servidor de desarrollo a todas las interfaces de red disponibles en el puerto 8000. Abre tu navegador web y navega a:

http://your_server_ip:8000

Deberías ver la página de bienvenida de Django — un cohete con el mensaje "¡La instalación funcionó correctamente! ¡Felicitaciones!"

Para acceder al panel de administración, navega a:

http://your_server_ip:8000/admin

> Importante: El servidor de desarrollo integrado de Django no es adecuado para producción. Es de un solo hilo, no está optimizado para el rendimiento y carece de endurecimiento de seguridad. Siempre usa un servidor web de nivel de producción para implementaciones en vivo.

Paso 9: Preparar Django para Producción (Recomendado)

Para implementaciones en producción, necesitas configurar una pila de servidor web adecuada. La configuración más común y recomendada es Nginx + Gunicorn.

Instalar Gunicorn

Con tu entorno virtual activo:

pip install gunicorn

Prueba que Gunicorn puede servir tu aplicación:

gunicorn --bind 0.0.0.0:8000 myproject.wsgi

Instalar y Configurar Nginx

sudo apt install nginx -y

Crea un archivo de configuración de bloque de servidor Nginx:

sudo nano /etc/nginx/sites-available/myproject

Añade la siguiente configuración:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {
        root /home/username/myproject;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

Habilita la configuración y reinicia Nginx:

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Recopilar Archivos Estáticos

Actualiza settings.py con el directorio de archivos estáticos:

STATIC_ROOT = BASE_DIR / 'staticfiles'

Luego recopila todos los archivos estáticos:

python manage.py collectstatic

Asegurar tu Aplicación con SSL

Para cualquier aplicación Django en producción, HTTPS es innegociable. Un Certificado SSL cifra los datos en tránsito entre tu servidor y tus usuarios, protege información sensible y es necesario para los indicadores de confianza del navegador moderno. AlexHost ofrece certificados SSL que se integran sin problemas con tu entorno de alojamiento.

Consideraciones Adicionales de Producción

Variables de Entorno para Configuraciones Sensibles

Nunca codifiques valores sensibles como SECRET_KEY, contraseñas de base de datos o claves API en settings.py. Usa variables de entorno en su lugar:

pip install python-decouple

En settings.py:

from decouple import config

SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)

Establece DEBUG en False en Producción

DEBUG = False

Ejecutar con DEBUG = True en producción expone páginas de error detalladas e información de configuración sensible a posibles atacantes.

Configura un Nombre de Dominio

Si aún no has registrado un dominio para tu proyecto Django, Registro de Dominio a través de AlexHost facilita apuntar tu dominio a tu servidor rápidamente, con gestión DNS completa incluida.

Elegir el alojamiento adecuado para su aplicación Django

El entorno de alojamiento que elija tiene un impacto significativo en el rendimiento, la confiabilidad y la escalabilidad de su aplicación Django. Aquí hay una guía rápida:

Caso de usoAlojamiento recomendado
Desarrollo y pruebasAlojamiento web compartido
Aplicaciones de producción pequeñas a medianasAlojamiento VPS
Aplicaciones de alto tráfico o con uso intensivo de recursosServidores dedicados
Aplicaciones Django integradas con aprendizaje automático / IAAlojamiento GPU

Para la mayoría de proyectos Django que pasan a producción, un plan de alojamiento VPS ofrece el equilibrio ideal entre rendimiento, control y rentabilidad. Obtiene acceso root, la capacidad de instalar cualquier stack de software y recursos dedicados que el alojamiento compartido no puede proporcionar.

Solución de problemas comunes de instalación de Django

pip: command not found

Instalar pip manualmente: sudo apt install python3-pip -y

django-admin: command not found

Tu entorno virtual puede no estar activado. Ejecuta source venv/bin/activate e intenta de nuevo.

Puerto 8000 No Accesible

Verifica las reglas del firewall de tu servidor. En Ubuntu con UFW:

sudo ufw allow 8000
sudo ufw reload

Conexión a Base de Datos Rechazada

Verifica que tu servicio de base de datos esté en ejecución:

sudo systemctl status postgresql
# or
sudo systemctl status mysql

ALLOWED_HOSTS Error

Asegúrate de que la dirección IP o nombre de dominio de tu servidor esté listado en la configuración ALLOWED_HOSTS en settings.py.

Conclusión

Ahora ha instalado exitosamente Django en su servidor de hosting, configurado un entorno virtual, configurado su base de datos, y aprendido cómo preparar su aplicación para producción. El rico conjunto de características de Django, sus sólidos valores predeterminados de seguridad, y su masivo ecosistema lo hacen una excelente opción para proyectos de desarrollo web de cualquier escala.

Para implementaciones en producción, siempre use una pila de servidor web adecuada (Nginx + Gunicorn o Apache + uWSGI), configure DEBUG = False, asegure su aplicación con un Certificado SSL, y elija un entorno de hosting que coincida con los requisitos de recursos de su aplicación. Ya sea que esté iniciando un nuevo proyecto o escalando uno existente, los planes de VPS Hosting y Servidor Dedicado de AlexHost proporcionan el rendimiento, confiabilidad y flexibilidad que su aplicación Django se merece.