Articulo de ayuda
Cómo ejecutar Python y Django en tu hosting
Aprende si puedes ejecutar apps Python (Django, Flask) en tu hosting, qué necesitas y cuándo conviene pasar a un VPS.
Introducción
Python es uno de los lenguajes de programación más populares del mundo, y Django y Flask son sus frameworks web más conocidos. Muchas startups y empresas desarrollan sus aplicaciones en Python.
Si has creado una app con Django o Flask y quieres publicarla, surge la misma duda que con Node.js: ¿cabe en mi hosting compartido o necesito un VPS? En este artículo te lo explico.
Qué necesita Python para funcionar en web
Al igual que Node.js, una aplicación Python con Django o Flask es un servidor: se mantiene corriendo y escuchando peticiones. Por eso tiene los mismos requisitos que Node:
- Python instalado en el servidor.
- Un proceso corriendo continuamente (tu app, con Gunicorn o uWSGI).
- Un proxy inverso (Nginx o Apache) para recibir las peticiones web y pasárselas a la app.
- Dependencias instaladas (con
pipyrequirements.txt).
Al igual que Node, esto choca con las limitaciones del hosting compartido.
¿Se puede Python en hosting compartido?
La respuesta corta
En la mayoría de hostings compartidos: no de forma cómoda ni recomendable, por las mismas razones que Node.js. Aunque Python venga instalado, no puedes tener procesos Django corriendo indefinidamente.
La excepción: cPanel con Setup Python App
Algunos hostings con cPanel incluyen una función llamada Setup Python App (o similar) que permite ejecutar apps Python en compartido de forma limitada. Si tu cPanel la tiene:
- Entra a cPanel.
- Busca Setup Python App.
- Crea una aplicación: elige la versión de Python, el dominio y el archivo de entrada.
- cPanel configura todo (servidor WSGI, proxy) por ti.
[Imagen sugerida: captura de Setup Python App en cPanel]
Con esta función puedes ejecutar apps Python modestas en compartido. Pero para producción seria con tráfico, un VPS sigue siendo la opción adecuada.
Qué necesitas en un VPS para Python
Para alojar una app Django o Flask en producción necesitas un VPS con:
- Python 3.x instalado.
- Un servidor WSGI como Gunicorn o uWSGI.
- Nginx como proxy inverso delante de Gunicorn.
- Una base de datos (PostgreSQL, MySQL o SQLite).
- Un entorno virtual (
venv) para aislar las dependencias.
En los VPS administrados de miHosting, configuramos todo esto por ti.
Cómo desplegar Django en un VPS
El flujo típico de despliegue de Django es:
Paso 1: Subir el código
Subes los archivos de tu app al VPS (por Git, FTP o rsync).
Paso 2: Crear un entorno virtual
python3 -m venv venv
source venv/bin/activate
Paso 3: Instalar dependencias
pip install -r requirements.txt
pip install gunicorn
Paso 4: Configurar Gunicorn
Gunicorn es el servidor que ejecuta tu app Django:
gunicorn myproject.wsgi:application --bind 127.0.0.1:8000
Paso 5: Configurar Nginx
Nginx recibe las peticiones del navegador y se las pasa a Gunicorn. Configuras un bloque server en Nginx:
server {
listen 80;
server_name tudominio.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
}
location /static/ {
alias /ruta/a/tu/static/;
}
}
Paso 6: Activar SSL
Con Let’s Encrypt:
certbot --nginx -d tudominio.com
Para mantener la app corriendo, usa systemd o supervisor. Así se reinicia si se cae o al reiniciar el servidor.
Django vs Flask: qué necesitas cada uno
| Framework | Tipo | Para qué | Dificultad de despliegue |
|---|---|---|---|
| Django | Framework completo | Webs grandes, con panel admin, ORM, etc. | Media |
| Flask | Microframework | APIs, webs pequeñas | Baja |
Ambos se despliegan de forma similar (Gunicorn + Nginx). La diferencia está en cómo está estructurado el proyecto.
Alternativas si no quieres un VPS
Si tu app Python no encaja en compartido y no quieres gestionar un VPS, tienes opciones:
1. Plataformas PaaS
Servicios como PythonAnywhere, Heroku, Render o Railway permiten desplegar apps Python sin gestionar servidores. Ideales para empezar.
2. Google App Engine / AWS Elastic Beanstalk
Si ya usas Google Cloud o AWS, estas plataformas permiten desplegar apps Python sin gestionar servidores.
3. Funciones serverless
Para pequeñas funciones Python, puedes usar AWS Lambda, Google Cloud Functions o Azure Functions.
Consejos útiles
- Usa siempre un entorno virtual (
venv). Evita conflictos entre proyectos. - Especifica versiones en requirements.txt. Usa
pip freeze > requirements.txtpara fijarlas. - No sirvas archivos estáticos con Django en producción. Configura Nginx o un CDN para servir
/static/y/media/. - Usa una base de datos adecuada. SQLite es para desarrollo; en producción, PostgreSQL o MySQL.
- Configura DEBUG=False en producción. Y define
ALLOWED_HOSTScorrectamente.
Problemas frecuentes
Mi app Django no carga los archivos estáticos
Tienes que ejecutar python manage.py collectstatic para copiar todos los archivos estáticos a una carpeta, y luego servir esa carpeta con Nginx.
El servidor me da error 502 Bad Gateway
Gunicorn no está corriendo, o Nginx no puede conectar con él. Verifica que Gunicorn está activo y que el puerto coincide.
Recibo “DisallowedHost”
Tienes DEBUG=True o ALLOWED_HOSTS no incluye tu dominio. Edita settings.py y añade tu dominio.
Mi app se cae cuando cierro el terminal
Necesitas un gestor de procesos (systemd, supervisor o similar) para mantenerla corriendo.
No sé si mi plan de hosting soporta Python
Si es compartido, probablemente no de forma cómoda. Si es un VPS, sí. Abre un ticket si tienes dudas.
Preguntas frecuentes
¿Puedo ejecutar Django en el hosting compartido de miHosting?
Solo si tu plan cPanel incluye Setup Python App, y de forma limitada. Para producción, recomendamos VPS.
¿Qué es mejor para Python: compartido o VPS?
VPS, sin duda. Las apps Python necesitan procesos corriendo continuamente.
¿Necesito saber Linux para alojar Python en un VPS?
Si es autogestionado, sí. Si es un VPS administrado de miHosting, nosotros lo gestionamos.
¿Puedo usar WordPress y Python en el mismo VPS?
Sí. Puedes tener Apache/Nginx sirviendo WordPress en un dominio y Gunicorn + Django en otro.
¿PythonAnywhere es gratis?
Tiene un plan gratuito muy limitado, válido para desarrollo. Para producción necesitas un plan de pago.
Elige el entorno adecuado para tu app Python
Python con Django o Flask es una opción excelente para aplicaciones web modernas. Pero al igual que Node.js, necesita el entorno adecuado: un VPS donde puedas tener procesos corriendo y configurar el servidor web.
Si tienes dudas sobre qué necesitas para tu app Python, abre un ticket desde tu panel de cliente. En miHosting te asesoramos con sinceridad y, si tu proyecto encaja, configuramos un VPS administrado a tu medida.