python ejemplos - Configurar el servidor de desarrollo de Flask para que sea visible a través de la red




documentation windows (7)

Añade las siguientes líneas a tu proyecto

if __name__ == '__main__':
    app.debug = True
    app.run(host = '0.0.0.0',port=5005)

No estoy seguro de si esto es específico del Flask, pero cuando ejecuto una aplicación en modo dev ( http://localhost:5000 ), no puedo acceder a ella desde otras máquinas en la red (con http://[dev-host-ip]:5000 ). Con Rails en modo dev, por ejemplo, funciona bien. No pude encontrar ningún documento relacionado con la configuración del servidor de desarrollo de Flask. ¿Alguna idea de qué debería configurarse para habilitar esto?


Tuve el mismo problema, uso PyCharm como editor y cuando creé el proyecto, PyCharm creó un Servidor Flask. Lo que hice fue crear un servidor con Python de la siguiente manera;

básicamente, lo que hice fue crear un nuevo servidor, pero en caso de que no fuera Python

Espero que te ayude


Agregando a la respuesta de @ Shawn, también hay una variable de configuración integrada SERVER_NAME. podemos establecer eso en 0.0.0.0 en el archivo de configuración que especifique en app.config.from_pyfile ("config.py"). También tenga en cuenta que esto anulará el nombre de host app.run.
Referencia: http://flask.pocoo.org/docs/0.10/config/


Compruebe si el puerto en particular está abierto en el servidor para servir al cliente o no?

en Ubuntu o Linux distro

sudo ufw enable
sudo ufw allow 5000/tcp //allow the server to handle the request on port 5000

Configure la aplicación para manejar solicitudes remotas

app.run(host='0.0.0.0' , port=5000)


python3 app.py & #run application in background

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

Agrega un parámetro a tu app.run() . De forma predeterminada, se ejecuta en localhost, cámbielo a app.run(host= '0.0.0.0') para que se ejecute en la dirección IP de su máquina.

Documentado en el sitio de Flask bajo "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 un código Python arbitrario en su computadora. Si ha desactivado 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 método run() para que se vea 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 de frasco 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 cualquier otro en la red. Este es el valor predeterminado porque en el modo de depuración, un usuario de la aplicación puede ejecutar un 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:

flask run --host = 0.0.0.0 Esto le indica a su sistema operativo que escuche en todas las IP públicas.

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


Deberías intentarlo:

request.url 

Se supone que debe funcionar siempre, incluso en localhost (simplemente lo hizo).





python flask werkzeug