Desplegar Django App (Actualizado Junio 2021)

Cómo instalar y configurar Django en una cuenta de alojamiento compartido de Linux

Django es un framework basado en Python que le permite crear sitios web potentes de forma rápida y sencilla. Este artículo demuestra cómo instalar y configurar Django en una cuenta de alojamiento compartido en Hosting del Caribe 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 alojamiento compartido, no recibe soporte oficial. Puede usar esta configuración como punto de partida para sus propios proyectos de Django, pero Hosting del Caribe no puede ayudarlo a solucionar problemas o depurar configuraciones personalizadas. Las labores inherentes al trabajo de webmaster no son cubiertas por nuestro servicio de soporte técnico.

 

Paso 1: Cree una aplicación Python en cPanel

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

 

  1. Inicie sesión en cPanel.
  2. En la sección de Software de cPanel ubique el elemento "Setup Python App"
  3. Click en CREATE APPLICATION y aparecerá el formulario de creación de la nueva app.
  4. En Python Version seleccione la versión recomendada en la lista.
  5. En el campo Application root escribe myapp
  6. En Application URL selecciona el nombre de dominio que utilizarás para el sitio y deja el resto en blanco.
  7. Deja en blanco los campos Application startup file y Application Entry point. Al dejarlos en blanco, cPanel creará automáticamente los archivos de startup passenger_wsgi.py  el objeto predeterminado application por ti.
  8. En el campo Passenger log file puedes opcionalmente especificar un archivo para registrar los logs de la aplicación.
  9. En la esquina superior derecha de la página, en en CREATE y cPanel creará la aplicación y configurará el entorno virtual de trabajo de Python.
  10. En la parte superior de la página, junto a "Enter to the virtual environment. To enter to virtual environment, run the command:" Copie el comando que aparecerá porque necesitará esta información en el siguiente procedimiento.

 

Paso 2: configurar el proyecto Django

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

 

 - Instalar Django.

- Crear y configura el proyecto Django.

- Configurar Passenger para que funcione con el proyecto Django.

Para hacer esto, siga estos pasos:

  1. 1. En la sección Avanzada de cPanel busque la herramienta Terminal y acceda a ella. Necesitará tener contratado el Acceso SSH en su plan de hosting.
  2. 2. Active el entorno virtual con el comando que anotó en el paso 10 anterior (username será tu usuario y estará actualizado cuando copies el comando tal como se indica en el paso 10 anterior). Por ejemplo:
source /home/username/virtualenv/myapp/3.8/bin/activate && cd /home/username/myapp

 

El Terminal ahora comienza con (myapp: 3.8) para indicar que está trabajando en el entorno virtual myapp con Python 3.8. Todos los siguientes comandos de este artículo asumen que está trabajando en el entorno virtual de Python. Si cierra la sesión de SSH (o desactiva el entorno virtual mediante el comando deactivate), asegúrese de reactivar el entorno virtual antes de seguir cualquiera de los pasos a continuación.

3. Para instalar django ejecuta los siguientes comandos:

cd ~
pip install django

 

4. Para crear un proyecto en django ahora ejecuta el siguiente comando:

django-admin startproject myapp ~/myapp

 

5. Para crear los directorios de los archivos estáticos del proyecto ejecuta los siguientes comandos:

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

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

En el inicio de este archivo escriba la siguiente línea de código:

 

import os

 

Busque ahora la línea ALLOWED_HOSTS y modifíquela de la siguiente manera. Reemplace example.com con su propio nombre de dominio:

ALLOWED_HOSTS = ['example.com']

 

Localice el bloque 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',
            ],
        },
    },
]

 

Busque 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 y 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. Utilice un editor de texto para abrir el archivo ~/myapp/passenger_wsgi.py y elimine todo el texto existente y luego copie el siguiente texto en el archivo:

 

 

import os
import sys

import django.core.handlers.wsgi
from django.core.wsgi import get_wsgi_application

# Set up paths and environment variables
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings'

# Set script name for the PATH_INFO fix below
SCRIPT_NAME = os.getcwd()

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)

# Set the application
application = get_wsgi_application()
application = PassengerPathInfoFix(application)

 

9. Utilice 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 diga Hola mundo.

10. Ahora en el Terminal SSH de cPanel ejecute:

 

python ~/myapp/manage.py migrate

 

11. Cree una cuenta de superuser con el siguiente comando:

 

python ~/myapp/manage.py createsuperuser

 

12. Ejecute ahora el siguiente comando para coleccionar los archivos estáticos (confirma si te pregunta si deseas sobreescribir archivos existentes):

 

python ~/myapp/manage.py collectstatic

 

13. En el cPanel reinicia la app en Python que creaste en los primeros pasos (En la sección de Software de cPanel ubique el elemento "Setup Python App" y luego click en el icono de Reiniciar App)

14. Verifique el sitio django visitando su URL

Utilice su navegador para ir a http://www.example.com, donde example.com representa su nombre de dominio. Debería cargarse el archivo index.html creado en el paso 9.

Utilice su 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 superuser que creó anteriormente.

 

 

Más información

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

 

Para ver la documentación oficial de Django, visite http://docs.djangoproject.com 

Para obtener información sobre las extensiones de Django, visite https://github.com/django-extensions/django-extensions 

La librería South es popular para completar migraciones de bases de datos. Para obtener más información sobre South, visite https://pypi.python.org/pypi/South 

La librería fabric puede ayudar a agilizar la implementación de aplicaciones. Para obtener más información sobre la tela, visite http://docs.fabfile.org 

 

 

  • django, django cpanel, django python cpanel
  • 3 Los Usuarios han Encontrado Esto Útil
¿Fue útil la respuesta?

Artículos Relacionados

Crear aplicación de Python en cPanel

¿Cómo crear una aplicación de Python en Hosting del Caribe? A continuación le indicamos mediante...

Corregir problema cuando static/media no son cargados

Si usted tiene problemas con static o media hosteando su aplicación en Django en nuestro hosting,...