Configurar Flask dev server para que sea visible en toda la red
No estoy seguro si esto es específico de Flask, pero cuando corro 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 sobre la configuración del servidor de desarrollo de Flask. ¿Alguna idea de lo que debe configurarse para habilitar esto?
7 answers
Si bien esto es posible, no debe usar el servidor dev de Flask en producción. El servidor dev de Flask no está diseñado para ser particularmente seguro, estable o eficiente. Consulte los documentos en deploying para obtener las soluciones correctas.
Agregue un parámetro a su 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 Externamente Visible" en la página de Inicio rápido :
Servidor Externamente Visible
Si ejecuta el servidor, notará que el servidor es solo disponible desde su propio ordenador, no desde ningún otro en la red. Este es el valor predeterminado porque en el modo de depuración un usuario de la la aplicación puede ejecutar código Python arbitrario en su computadora. Si tener la depuración desactivada o confiar en los usuarios de su red, puede hacer el servidor disponible públicamente.
Simplemente cambie 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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-11 00:19:16
Si usa el ejecutable flask 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. La configuración y la aplicación.ejecutar métodos que las otras respuestas describen son probablemente una mejor práctica, pero esto también puede ser útil.
Servidor Externamente visible Si ejecuta el servidor, notará que el servidor solo es accesible desde su propio ordenador, no desde cualquier otros en la red. Este es el valor predeterminado porque en modo de depuración a usuario de la aplicación puede ejecutar código Python arbitrario en su ordenador.
Si tiene el depurador desactivado 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 comandos:
Flask run host host = 0.0.0.0 Esto le dice a su sistema operativo que escuche todas las IP públicas.
Referencia: http://flask.pocoo.org/docs/0.11/quickstart/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-29 01:28:01
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)
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-07 20:52:55
Agregue las siguientes líneas a su proyecto
if __name__ == '__main__':
app.debug = True
app.run(host = '0.0.0.0',port=5005)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-04 09:18:50
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 flask si no python
Espero que te ayude
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-04 13:46:07
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
Configurar la aplicación para manejar solicitudes remotas
app.run(host='0.0.0.0' , port=5000)
python3 app.py & #run application in background
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-01 19:12:17
Añadiendo a la respuesta de @Shawn, también hay una variable de configuración incorporada SERVER_NAME. podemos establecer que a 0.0.0.0 en el archivo de configuración que se especifica en app.config.from_pyfile("config.py"). También tenga en cuenta que, esto anulará la aplicación.ejecutar nombre de host.
Referencia: http://flask.pocoo.org/docs/0.10/config/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-02 06:23:38