Guía 25

Guía 25

DAWM / Proyecto05

Objetivo general

Desarrollar una aplicación backend robusta y escalable utilizando Django que integre una interfaz de administrador intuitiva para la gestión eficiente de datos y funcionalidades junto con un REST API completo que facilite la comunicación con las aplicaciones cliente de tal forma que garantice la seguridad, el rendimiento y la extensibilidad del sistema.

Actividades previas

  1. Obtenga una cuenta Beginner account en PythonAnywhere.

    Fuente: Python Anywhere

Actividades en clases

Consola de PythonAnywhere

  1. Desde la interfaz de PythonAnywhere.
  2. Acceda a la opción Consoles.
  3. Cree una nueva consola en Start a new console: > Bash.

  4. (STOP 1) Mantenga abierta la consola del proyecto.

Ambiente de desarrollo y repositorio local/remoto + librerías

  1. Desde la línea de comandos

    • Cree un entorno virtual con el nombre environment y con la versión de Python 3.10
     mkvirtualenv --python=/usr/bin/python3.10 environment
    
    • Clone el repositorio backend y acceda a la carpeta backend.
    • Instale las librerías de requirements.txt, con:
     pip install -r requirements.txt
    
  2. (STOP 2) Verifique la instalación de los requerimientos

SDK Firebase Admin: Clave privada

  1. Acceda a la consola de Firebase
  2. Ingrese al proyecto landing

    • Acceda a la Configuración de proyecto.
    • Genere y descargue una clave privada JSON.
  3. (STOP 3) Desde la interfaz de PythonAnywhere acceda a la opción Files

    • Acceda a la carpeta backend
    • Cree la carpeta keys
    • Cargue el archivo con las credenciales de Firebase utilizados en desarrollo.

Migración y Superusuario

  1. Desde la línea de comandos del proyecto

    • Aplique las migraciones
     python manage.py makemigrations
     python manage.py migrate
    
  2. (STOP 4) Cree el SuperUsuario. Recuerde el usuario y la contraseña para probar el sistema de autenticación.

     python manage.py createsuperuser
    

WebApp

  1. Desde la interfaz de Python Anywhere, en la opción Web, cee una aplicación web con el botón Add a new web app

  2. Seleccione la opción » Manual configuration (including virtualenvs), con la versión de Python 3.10

  3. En la interfaz de la WebApp:

    • En la sección CODE, haga clic en la opción Working directory para modificar la ruta a la carpeta del proyecto

        /home/<USUARIO-PYTHONANYWHERE>/backend
      
    • En la sección CODE, haga clic en el WSGI configuration file y reemplace todo el contenido, por:

        # This file contains the WSGI configuration required to serve up your
        # web application at http://<USUARIO-PYTHONANYWHERE>.pythonanywhere.com/
        # It works by setting the variable 'application' to a WSGI handler of some
        # description.
        #
        # The below has been auto-generated for your Django project
      
        import os
        import sys
      
        # add your project directory to the sys.path
        project_home = '/home/<USUARIO-PYTHONANYWHERE>/backend'
        if project_home not in sys.path:
            sys.path.insert(0, project_home)
      
        # set environment variable to tell django where your settings.py is
        os.environ['DJANGO_SETTINGS_MODULE'] = 'backend.settings'
      
      
        # serve django via WSGI
        from django.core.wsgi import get_wsgi_application
        application = get_wsgi_application()
      
    • En la sección VIRTUALENV ingrese la ruta al ambiente de Python

        /home/<USUARIO-PYTHONANYWHERE>/.virtualenvs/environment/
      

Seguridad

  1. Desde la interfaz de PythonAnywhere y acceda a la opción Files

  2. Modifique el archivo backend/backend/settings.py

    • En el dominio ALLOWED_HOSTS agregue el dominio de su WebApp

        ...
        ALLOWED_HOSTS = ['<USUARIO-PYTHONANYWHERE>.pythonanywhere.com']
        ...
      

Archivos estáticos

  1. Desde la interfaz de PythonAnywhere y acceda a la opción Files

  2. Modifique el archivo backend/backend/settings.py

    • Agregue la ruta a los archivos estáticos STATIC_ROOT

        ...
      
        STATICFILES_DIRS = [ ... ]
      
        STATIC_ROOT = "assets/"
        ...
      
  3. Desde la interfaz de Python Anywhere y acceda en la opción Console

    • Genere los archivos estáticos

        python manage.py collectstatic
      
  4. En el ambiente de configuración de la web app

    • Agregue la URL /static/ y el directorio /home/<USUARIO-PYTHONANYWHERE>/backend/assets/

Verificación

  1. Acceda a los sitios

Documentación

Fundamental

Términos

PythonAnywhere

Referencias