ejemplos - python flask version
Configurar el servidor de desarrollo de Flask para que sea visible a través de la red (7)
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?
Añade las siguientes líneas a tu proyecto
if __name__ == ''__main__'':
app.debug = True
app.run(host = ''0.0.0.0'',port=5005)
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 su aplicación cool
tiene su configuración cargada desde un archivo externo, como en el siguiente ejemplo, no olvide actualizar el archivo de configuración correspondiente con HOST = "0.0.0.0"
cool.app.run(
host=cool.app.config.get("HOST", "localhost"),
port=cool.app.config.get("PORT", 9000)
)
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/