Django es un marco basado en Python que le permite crear rápida y fácilmente sitios web potentes. Este artículo muestra cómo instalar y configurar Django en una cuenta de alojamiento compartido de Linux que usa cPanel.

Después de completar los siguientes procedimientos, tendrá un sitio de Django en funcionamiento en su cuenta que:

  • Carga una página de inicio estática para el dominio.
  • Carga la interfaz de administración de Django.
  • Utiliza una base de datos SQLite.

Aunque hemos probado y ejecutado esta configuración de Django en cuentas de hosting compartido, no cuenta con soporte oficial.
Puede utilizar ésta configuración como punto de partida para sus propios proyectos de Django, pero desde el área de Soporte no podremos ayudarlo a solucionar problemas o depurar configuraciones personalizadas.

Tabla de contenido

  1. Paso 1: Crea una aplicación Python en cPanel
  2. Paso 2: Configurar el proyecto Django
  3. Más información
  4. Artículos relacionados

PASO 1: CREA UNA APLICACIÓN PYTHON EN CPANEL

El primer paso es crear una aplicación Python dentro de cPanel que alojará el proyecto Django. Para hacer esto, siga estos pasos:

  1. Inicia sesión en cPanel.
  2. En la sección SOFTWARE de la pantalla de inicio de cPanel, haga clic en «Setup Python APP«.
  3. En Setup new application , en el cuadro de lista Python version , seleccione 3.6 .
  4. En el cuadro de texto App Directory , escriba myapp .
  5. En el cuadro de lista App Domain / URI , seleccione el dominio que desea usar y luego deje el cuadro de texto URI vacío.
  6. Haga clic en Setup . cPanel crea la aplicación y configura el entorno Python.
  7. En Existing applications, donde dice Command for entering to virtual environment, copie el comando. Necesitará esta información en el siguiente paso.

PASO 2: CONFIGURAR EL PROYECTO DJANGO

Después de crear la aplicación Python en cPanel, estará listo para realizar las siguientes tareas en la línea de comandos:

    null
  • Instala Django.
  • Crea y configura el proyecto Django.
  • Configure Passenger para trabajar con el proyecto Django.

Para hacer esto, siga estos pasos:

1_ Inicie sesión en su cuenta utilizando SSH .

2_ Active el entorno virtual mediante el comando que anotó en el paso 7 anterior. Por ejemplo:

source /home/USERNAME/virtualenv/myapp/3.6/bin/activate

3_ Para instalar Django, escriba los siguientes comandos: 

cd ~
pip install django==2.1.8

Para verificar la versión de Django que está instalada, escribiendo el siguiente comando:

django-admin –version

4_ Para crear un proyecto Django, escriba el siguiente comando:

django-admin startproject myapp ~/myapp

5_ Para crear los directorios donde se almacenaran los archivos estáticos, escriba los siguientes comandos:

mkdir -p ~/myapp/templates/static_pages
mkdir ~/myapp/static_files
mkdir ~/myapp/static_media

6_ Use un editor de texto para abrir el archivo ~/myapp/myapp/settings.py , y luego realice los siguientes cambios:

  • Localice la línea ALLOWED_HOSTS y luego modifíquela de la siguiente manera. Reemplace example.com con su propio nombre de dominio
ALLOWED_HOSTS = ['example.com']
  • Localice el bloque de TEMPLATES , y luego modifíquelo de la siguiente manera:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
  • Localice la línea STATIC_URL y luego agregue las siguientes líneas debajo de ella:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "static_media")

7_ Utilice un editor de texto para abrir el archivo ~/myapp/myapp/urls.py. Elimine todo el texto existente y luego copie el siguiente texto en el archivo:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.conf.urls import url
from django.views.generic.base import TemplateView

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^$', TemplateView.as_view(template_name='static_pages/index.html'), name='home'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

8_ Use un editor de texto para abrir el archivo ~/myapp/passenger_wsgi.py, y luego realice los siguientes cambios. Reemplace el USERNAME con su propio nombre de usuario de cuenta:

import myapp.wsgi
SCRIPT_NAME = '/home/USERNAME/myapp'

class PassengerPathInfoFix(object):
    """
    Sets PATH_INFO from REQUEST_URI because Passenger doesn't provide it.
    """
    def __init__(self, app):
        self.app = app

    def __call__(self, environ, start_response):
        from urllib.parse import unquote
        environ['SCRIPT_NAME'] = SCRIPT_NAME

        request_uri = unquote(environ['REQUEST_URI'])
        script_name = unquote(environ.get('SCRIPT_NAME', ''))
        offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
        environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
        return self.app(environ, start_response)

application = myapp.wsgi.application
application = PassengerPathInfoFix(application)

9_ Use un editor de texto para crear un archivo index.html básico en el directorio ~/myapp/templates/static_pages . El archivo puede ser tan simple como un archivo de texto que dice Hello world .

10_ Escriba el siguiente comando:

python ~/myapp/manage.py migrate

11_ Configurar la cuenta de superusuario:

  • Escriba el siguiente comando:
python ~/myapp/manage.py createsuperuser
  • Cuando se le solicite Username , escriba el nombre de usuario del administrador y luego presione Entrar.
  • En la solicitud de Email address , escriba la dirección de correo electrónico del administrador y luego presione Intro.
  • Cuando se le solicite Password , escriba la contraseña del administrador y luego presione Intro.

12_ Escribe el siguiente comando para recoger los archivos estáticos:

python ~/myapp/manage.py collectstatic

13_ En cPanel, reinicie la aplicación Python:

  • Inicia sesión en cPanel.
  • En la sección SOFTWARE de la pantalla de inicio de cPanel, haga clic en Configurar aplicación Python .
  • En Aplicaciones existentes , localice la aplicación correcta y luego haga clic en Reiniciar .

14_ Prueba el sitio de Django:

  • Usa tu navegador para ir a http: // www. example.com , donde example.com representa su nombre de dominio. El archivo index.html debería cargar.
  • Usa tu navegador para ir a http: // www. example.com / admin , donde example.com representa su nombre de dominio. Debería ver la página de inicio de sesión de administración de Django. Para iniciar sesión, use las credenciales de superusuario que creó anteriormente.

Si el sitio web no aparece en su navegador, intente ejecutar el archivo passenger_wsgi.py manualmente. Para hacer esto, escriba el siguiente comando:

python ~/myapp/passenger_wsgi.py

No debe haber salida de texto a la consola cuando ejecuta este archivo. Si hay algún error, verifique la sintaxis en los archivos de configuración.

MÁS INFORMACIÓN

Ahora que tiene un sitio web habilitado para Django en funcionamiento, puede comenzar el verdadero trabajo de desarrollo de sus propias aplicaciones. Los siguientes recursos pueden ayudar: