In Desarrollo Última actualizaciónated:
Comparte en:
Software de Jira es la herramienta de gestión de proyectos número uno utilizada por equipos ágiles para planificar, rastrear, lanzar y respaldar software excelente.

Aprendamos a exponer una aplicación de demostración de Django a Internet. Eso, sin desplegarlo en un servicio de hosting.

Configurar un entorno de implementación provisional solo para mostrar una demostración de su aplicación Django es horrible. Aún más, si solo necesitas una URL durante un par de minutos, para mostrársela a un cliente o equipo.ate.

La mejor opción es utilizar una herramienta para exponer su servidor local actual. ¡Exactamente! Personas de todo el mundo podrán ver lo que está sucediendo en su host local.

Para ese propósito, usaremos Ngrok. Esta herramienta nos permitirá crearate URL públicas basadas en los puertos locales de nuestros ordenadores. Todo esto gracias a la magia de túneles.

Antes de comenzar todo el código trabajado en este tutorial, estará disponible en este Repositorio de Github.

Pre requisitos

Se recomienda conocer todas estas cosas básicas. Aunque es probable que puedas seguir este tutorial sin más problemas.

Creando una aplicación Django

Para crearate un tutorial paso a paso, te explico el process de crear un proyecto Django. Si ya tienes uno, puedes saltarte esta sección.

Ambiente virtual

En primer lugar, creemosate a Entorno virtual de Python.

  • Así que abre la terminal de tu sistema (o shell).
  • Si lo encuentras demasiado complicadoated para abrir la terminal de su sistema, intente utilizar la terminal incorporada del Editor de código.

  • Haga clic en Terminal> Nueva terminal, y debería aparecer un caparazón en la parte inferior de la pantalla.
  • Escriba el siguiente comando para crearate un entorno virtual, con la herramienta Python incorporada.
python -m venv .venv

es basicoally medio:

Hola Python, create un comando de entorno virtual (-m venv) con el nombre de .venv 

  • Ahora, si enumera los archivos de su directorio actual, debería ver un .venv carpeta.
$ ls -l
drwxr-xr-x    - daniel 30 abr 23:12 .venv
# Other files ...
  • Para activarate El entorno virtual lo llamamos fuente mando.
source .venv/bin/activate
Trading Cáscara Comando para activarate ambiente virtual
POSIX bash / zsh fuente $ /bin/activate
Pescado fuente $ /bin/activate.pescado
csh / tcsh fuente $ /bin/activate.csh
Núcleo de PowerShell ps /bin/Activate. Ps1
Windows cmd.exe C:\> \Scripts\activate.bat
PowerShell PD C:\> \Scripts\Activate. Ps1

Ahora, si ha ejecutado el comando correcto, su shell debería tener el nombre del entorno virtual en él.

$ source .venv/bin/activate.fish

(.venv) $ 

Instalar Django

Después de activar su entorno virtual, ahora puede instalar whatever la versión de Django que desees. En este caso, es una buena opción instalar el l.atest.

$ pip install django
Collecting django
  Using cached Django-3.2-py3-none-any.whl (7.9 MB)
Collecting pytz
  Using cached pytz-2021.1-py2.py3-none-any.whl (510 kB)
Collecting asgiref<4,>=3.3.2
  Using cached asgiref-3.3.4-py3-none-any.whl (22 kB)
Collecting sqlparse>=0.2.2
  Using cached sqlparse-0.4.1-py3-none-any.whl (42 kB)
Installing collected packages: pytz, asgiref, sqlparse, django
Successfully installed asgiref-3.3.4 django-3.2 pytz-2021.1 sqlparse-0.4.1

Ahora es el momento de crearate la estructura básica del proyecto de la aplicación Django que desea exponer.

$ django-admin startproject mytestingproject

Esto crearáate un proyecto de Django con el nombre de miproyectodepruebas. Después de crearlo, queremos que ingrese al directorio donde se encuentra la estructura del proyecto.ated. Entonces vamos cd en él y ejecute el servidor Django.

# Enter to the project directory
(.venv)$ cd mytestingproject/

# Listing the files inside the project
(.venv) $ ls
mytestingproject  manage.py 

Ahora que está dentro, ejecutemos el servidor Django para ver cómo se ve.

 (.venv) $python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
May 01, 2021 - 04:34:25
Django version 3.2, using settings 'mytestingproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Basically, Django nos dice que se está ejecutando un servidor local en nuestro host local (127.0.0.1 siempre apunta a él), en el puerto predeterminado, 8000.

No se preocupe por el mensaje de error. Primero, verifiquemos que todo esté funcionando bien en nuestro servidor local. Para ello entra en su web browser y pegue esta dirección:

http://localhost:8000/
# Do you note that localhost and 127.0.0.1 are the same?

Si todo funciona bien, deberías ver un Django beautiful tieneplate.

Eso es todo sobre nuestra instalación de Django.

Ahora vamos a exponer este proyecto de Django. Si está trabajando en un proyecto más complejo, los siguientes métodos para exponer aplicaciones de Django también funcionarán.

Exponer una aplicación Django con Ngrok

Como dije antes, Ngrok es una de las herramientas que nos permitirá conectar nuestro servidor local en Internet. Así que antes que nada Descarga Ngrok del sitio web oficial.

Una vez que lo haya instalado, procedamos con los comandos necesarios.

Abra otro shell, manteniendo la terminal que su servidor Django está ejecutando actualmente, y escriba.

$  ngrok help
NAME:
   ngrok - tunnel local ports to public URLs and inspect traffic

More commands ....

Esto le dará un vistazo rápido a los comandos disponibles que ofrece Ngrok y también garantizará que la instalación process salió correctamente.

Para crearate una URL donde la gente pueda acceder a nuestro servidor, ejecutemos.

    $ ngrok http 8000 
# secure public URL for port 8000 web server

Estamos ejecutando el http argumento, a create una URL que se conectará al puerto 8000 de nuestro localhost.

Este es el resultado que probablemente obtendrá.

ngrok by @inconshreveable                                                                      (Ctrl+C to quit)
                                                                                                               
Session Status                online                                                                           
Session Expires               1 hour, 59 minutes                                                               
Update                        update available (version 2.3.39, Ctrl-U to update)                              
Version                       2.3.35                                                                           
Region                        United States (us)                                                               
Web Interface                 http://127.0.0.1:4040                                                            
Forwarding                    http://cac2165aa7f8.ngrok.io -> http://localhost:8000                            
Forwarding                    https://cac2165aa7f8.ngrok.io -> http://localhost:8000                           
                                                                                                               
Connections                   ttl     opn     rt1     rt5     p50     p90                                      
                              0       0       0.00    0.00    0.00    0.00       

Como dice, Ngrok está reenviando esa URL extraña y fea a nuestra localhost. Pero la magia ocurre cuando tocas la b.rowser con la URL que Ngrok te dio.

Página de error.

Cambio de settings.py

Vaya, ¿qué acaba de pasar?

Parece que Django está lanzando un error debido a un Anfitrión configuración. Si verifica el shell en el que está ejecutando el servidor Django y el que tiene la sesión Ngrok, obtendrá algunos mensajes de depuración.

# Django messages
Invalid HTTP_HOST header: 'cac2165aa7f8.ngrok.io'. You may need to add 'cac2165aa7f8.ngrok.io' to ALLOWED_HOSTS.
Bad Request: /
[01/May/2021 05:07:46] "GET / HTTP/1.1" 400 65196
Invalid HTTP_HOST header: 'cac2165aa7f8.ngrok.io'. You may need to add 'cac2165aa7f8.ngrok.io' to ALLOWED_HOSTS.

# Ngrok messages
HTTP Requests                                                            
-------------                                                            
                                                                         
GET /favicon.ico               400 Bad Request                           
GET /                          400 Bad Request                           
                                              

Como nos dice Django, debemos agregar el dominio que estamos conectando a la variable de configuración ALLOWED_HOSTS. Pero tenemos un problema y es que el nombre de dominio es demasiado grande y confuso.

Así que cambiemos un poco bit la configuración de Django, para resolver este error. Abre el settings.py ubicación de archivoated en la carpeta del proyecto.

# mytestingproject/settings.py

# Line 28

# Change from
ALLOWED_HOSTS = []

# To

ALLOWED_HOSTS = ["*"]

Si conoce algunas expresiones regulares, puede apreciarate que estamos configurando un comodín, donde se permitirán todos los hosts.

Ahora recargue el sitio y vea el resultado.

Página de trabajo

¡Todo funciona perfectamente ahora! Y si empiezas a create aplicaciones para el proyecto y la configuración de URL y vistas, todo se reflejará en esa URL pública.

Nota:  No te olvides de cambiar ALLOWED_HOSTS en producción, ya que produciría un enorme agujero de seguridad.

Conclusiones

En este tutorial, aprendiste cómo crearate una URL de demostración para tu proyecto Django, sin necesidad de implementarlo.

Practicó cómo iniciar un proyecto de Django y trabajar con el settings.py archivo en Django.

finalally, aprendiste cómo usar Ngrok y cómo exponer cualquier servidor local con él.

A continuación, explore algunos de los frameworks populares de Python para construir API.

Comparte en:
  • Daniel Diaz
    Autor
    Self Enseñé a desarrollador Python/Django, siempre aprendiendo y construyendo cosas increíbles. Técnico writery creador de Developer Road.
  • Narendra MohanMittal
    Editora

    Narendra Mohan Mittal es un hermano digital versátil y experimentado.anding strateEditor esencial y de contenidos con más de 12 años de experiencia. Es medallista de oro en M-Tech y B-Tech en Ingeniería y Ciencias de la Computación.


    Actualmente,…

Gracias a nuestros patrocinadores

Más lecturas interesantes sobre el desarrollo

Impulse su negocio

Algunas de las herramientas y servicios para ayudar a su negocio grow.
  • La herramienta de conversión de texto a voz que utiliza IA para generarate Voces realistas parecidas a las humanas.

    Intente Murf AI
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.

    Prueba Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno para ayudarlo a administrar proyectos, tareas, trabajo, ventas, CRM, operaciones, workflows, y más.

    Intente Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.

    Intente Intruder