Настройка сервера Flask dev для отображения по сети
Я не уверен, что это колба, но когда я запускаю приложение в режиме dev (http://localhost:5000
), Я не могу получить доступ к нему с других машин в сети (с http://[dev-host-ip]:5000
). Например, с Rails в режиме dev он работает нормально. Я не смог найти никаких документов относительно конфигурации сервера Flask dev. Есть идеи, что должно быть настроено для включения этого?
7 ответов
хотя это возможно, вы не должны использовать сервер Flask dev в производстве. Сервер Flask dev не предназначен для обеспечения безопасности, стабильности или эффективности. См. документы на установка для правильного решения.
добавить параметр app.run()
. По умолчанию он работает на localhost, измените его на app.run(host= '0.0.0.0')
для запуска на компьютерах IP-адрес.
документировано на сайте колбы в разделе "внешне видимый сервер" на краткое руководство страница:
Внешний Видимый Сервер
если вы запустите сервер, вы заметите, что сервер только доступно с вашего собственного компьютера, а не с любого другого в сети. Это значение по умолчанию, так как в режиме отладки пользователь приложение может выполнять произвольный код Python на вашем компьютере. Если вы отключите отладку или доверяйте пользователям в своей сети, вы можете сделать сервер общедоступным.
просто изменить зов
run()
метод, чтобы выглядеть так:
app.run(host='0.0.0.0')
Это говорит вашей операционной системе слушать на общедоступном IP.
Если вы используете исполняемый файл flask для запуска сервера, вы можете использовать flask run --host=0.0.0.0
чтобы изменить значение по умолчанию с 127.0.0.1 и открыть его до нелокальных соединений. В config и App.методы запуска, которые описывают другие ответы, вероятно, лучше практиковать, но это также может быть удобно.
внешний видимый сервер если вы запустите сервер, вы заметите, что сервер доступен только с вашего собственного компьютера, а не с любого другие в сети. Это по умолчанию потому что в режиме отладки в пользователь приложения может выполнять произвольный код Python на вашем компьютер.
если отладчик отключен или Вы доверяете пользователям в сети, вы можете сделать сервер общедоступным, просто добавив -- host=0.0.0.0 в командной строке:
Flask run --host=0.0.0.0 это говорит вашей операционной системе слушать все общедоступные.
Если cool
приложение имеет конфигурацию, загруженную из внешнего файла, как в следующем примере, а затем не забудьте обновить соответствующий файл конфигурации с помощью HOST= "0.0.0.0"
cool.app.run(
host=cool.app.config.get("HOST", "localhost"),
port=cool.app.config.get("PORT", 9000)
)
добавьте в свой проект следующие строки
if __name__ == '__main__':
app.debug = True
app.run(host = '0.0.0.0',port=5005)
Проверьте, открыт ли конкретный порт на сервере для обслуживания клиента или нет?
в дистрибутиве Ubuntu или Linux
sudo ufw enable
sudo ufw allow 5000/tcp //allow the server to handle the request on port 5000
настройте приложение для обработки удаленных запросов
app.run(host='0.0.0.0' , port=5000)
python3 app.py & #run application in background
добавление к ответу @Shawn, есть также встроенная переменная конфигурации SERVER_NAME. мы можем установить значение 0.0.0.0 в файле конфигурации, который вы указываете в приложении.config.from_pyfile("config.py"). Также обратите внимание,что это переопределит приложение.запустить имя хоста.
Ссылка: http://flask.pocoo.org/docs/0.10/config/