Saltar al contenido

Configurar el servidor de desarrollo de Flask para que sea visible en toda la red

Hola, tenemos la respuesta a lo que estabas buscando, continúa leyendo y la obtendrás a continuación.

Solución:

Si bien esto es posible, no debe usar el servidor de desarrollo de Flask en producción. El servidor de desarrollo de Flask no está diseñado para ser particularmente seguro, estable o eficiente. Consulte los documentos sobre la implementación para obtener las soluciones correctas.


Agregue un parámetro a su app.run(). Por defecto se ejecuta en localhostcambiarlo a app.run(host= '0.0.0.0') para ejecutarse en todas las direcciones IP de su máquina. 0.0.0.0 es un valor especial, deberá navegar hasta la dirección IP real.

Documentado en el sitio de Flask en “Servidor visible externamente” en la página de inicio rápido:

Servidor visible externamente

Si ejecuta el servidor, notará que el servidor solo está disponible desde su propia computadora, no desde ninguna otra en la red. Este es el valor predeterminado porque en el modo de depuración, un usuario de la aplicación puede ejecutar código Python arbitrario en su computadora. Si ha deshabilitado la depuración o confía en los usuarios de su red, puede hacer que el servidor esté disponible públicamente.

Solo cambia la llamada del run() método para verse así:

app.run(host='0.0.0.0')

Esto le dice a su sistema operativo que escuche en una IP pública.

Si usa el ejecutable del matraz para iniciar su servidor, puede usar flask run --host=0.0.0.0 para cambiar el valor predeterminado de 127.0.0.1 y abrirlo a conexiones no locales. Los métodos config y app.run que describen las otras respuestas son probablemente una mejor práctica, pero esto también puede ser útil.

Servidor visible externamente Si ejecuta el servidor, notará que solo se puede acceder al servidor desde su propia computadora, no desde ninguna otra en la red. Este es el valor predeterminado porque en el modo de depuración, un usuario de la aplicación puede ejecutar código Python arbitrario en su computadora.

Si tiene el depurador deshabilitado o confía en los usuarios de su red, puede hacer que el servidor esté disponible públicamente simplemente agregando –host=0.0.0.0 a la línea de comando:

matraz ejecutar –host=0.0.0.0 Esto le dice a su sistema operativo que escuche en todas las direcciones IP públicas.

Referencia: http://flask.pocoo.org/docs/0.11/quickstart/

Prueba esto si el método 0.0.0.0 no funciona

Cosas aburridas

Personalmente luché mucho para que mi aplicación fuera accesible para otros dispositivos (computadoras portátiles y teléfonos móviles) a través de un servidor local. Probé el método 0.0.0.0, pero no tuve suerte. Luego intenté cambiar el puerto, pero simplemente no funcionó. Entonces, después de probar un montón de combinaciones diferentes, llegué a esta y resolvió mi problema de implementar mi aplicación en un servidor local.

Pasos

  1. Obtenga la dirección IPv4 local de su computadora. Esto se puede hacer escribiendo ipconfig en Windows y ifconfig en Linux y Mac.

IPv4 (Windows)

Tenga en cuenta: el paso anterior se debe realizar en la máquina en la que está sirviendo la aplicación, y no en la máquina en la que está accediendo a ella. También tenga en cuenta que la dirección IPv4 puede cambiar si se desconecta y se vuelve a conectar a la red.

  1. Ahora, simplemente ejecute la aplicación del matraz con la dirección IPv4 adquirida.

    flask run -h 192.168.X.X

    Por ejemplo, en mi caso (ver la imagen), lo ejecuté como:

    flask run -h 192.168.1.100

ejecutando la aplicación del matraz

En mi dispositivo móvil

captura de pantalla de mi teléfono móvil

Material opcional

Si está realizando este procedimiento en Windows y usa Power Shell como la CLI, y aún no puede acceder al sitio web, pruebe con un comando CTRL + C en el shell que ejecuta la aplicación. Power Shell se congela a veces y necesita un pellizco para revivir. Hacer esto podría incluso cerrar el servidor, pero a veces funciona.

Eso es todo. Dale un pulgar hacia arriba si esto te resultó útil.

Algunas cosas más opcionales

Creé un breve script de Powershell que le proporcionará su dirección IP siempre que la necesite:

$env:getIp = ipconfig
if ($env:getIp -match '(IPv4[sa-zA-Z.]+:s[0-9.]+)') 
    if ($matches[1] -match '([^a-zs][d]+[.d]+)')
        $ipv4 = $matches[1]
    

echo $ipv4

Guárdelo en un archivo con extensión .ps1 (para PowerShell) y ejecútelo antes de iniciar su aplicación. Puede guardarlo en la carpeta de su proyecto y ejecutarlo como:

.getIP.ps1; flask run -h $ipv4

Nota: Guardé el shellcode anterior en getIP.ps1.

Frio.

Te mostramos comentarios y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *