Настроить сервер флагов, чтобы быть видимым по сети

Я не уверен, что это флажок, но когда я запускаю приложение в режиме dev ( http://localhost:5000 ), я не могу получить к нему доступ с других компьютеров в сети (с http://[dev-host-ip]:5000 ). Например, с Rails в режиме dev он работает нормально. Я не мог найти никаких документов относительно конфигурации сервера Flask dev. Любая идея, что нужно настроить для этого?

Хотя это возможно, вы не должны использовать сервер Flask dev в производстве. Сервер Flask dev не разработан, чтобы быть особенно безопасным, стабильным или эффективным. См. Документы по развертыванию для правильных решений.


Добавьте параметр в свой app.run() . По умолчанию он запускается на локальном app.run(host= '0.0.0.0') , меняет его на app.run(host= '0.0.0.0') для запуска на вашем компьютере IP-адреса.

Документируется на сайте фляжки в разделе «Внешне видимый сервер» на странице быстрого запуска :

Внешне видимый сервер

Если вы запустите сервер, вы заметите, что сервер доступен только с вашего собственного компьютера, а не с любого другого в сети. Это значение по умолчанию, потому что в режиме отладки пользователь приложения может выполнить произвольный код Python на вашем компьютере. Если отладка отключена или доверена пользователям в вашей сети, вы можете сделать сервер общедоступным.

Просто измените вызов метода run() чтобы он выглядел следующим образом:

app.run(host='0.0.0.0')

Это говорит, что ваша операционная система прослушивает публичный IP-адрес.

Если вы используете исполняемую флэшку для запуска своего сервера, вы можете использовать flask run --host=0.0.0.0 чтобы изменить значение по умолчанию от 127.0.0.1 и открыть его для не локальных подключений. Способы config и app.run, которые описывают другие ответы, вероятно, являются лучшей практикой, но это может быть удобно.

Внешне видимый сервер. Если вы запустите сервер, вы заметите, что сервер доступен только с вашего собственного компьютера, а не с любого другого в сети. Это значение по умолчанию, потому что в режиме отладки пользователь приложения может выполнить произвольный код Python на вашем компьютере.

Если у вас отключен или доверен отладчик пользователей в вашей сети, вы можете сделать его общедоступным просто, добавив в командной строке -host = 0.0.0.0:

flask run –host = 0.0.0.0 Это говорит, что ваша операционная система прослушивает все публичные IP-адреса.

Ссылка: http://flask.pocoo.org/docs/0.11/quickstart/

Если ваше 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) 

У меня была та же проблема, я использую PyCharm в качестве редактора, и когда я создал проект, PyCharm создал Flask Server. То, что я сделал, это создать сервер с Python следующим образом;

Конфигурация сервера Python PyCharm в основном то, что я сделал, это создать новый сервер, но фляж, если не python

Надеюсь, это поможет вам

Проверьте, открыт ли конкретный порт на сервере для обслуживания клиента или нет?

в дистрибутиве 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 в файле конфигурации, который вы указали в файле app.config.from_pyfile («config.py»). Также обратите внимание, что это переопределит имя хоста app.run.
Ссылка: http://flask.pocoo.org/docs/0.10/config/

Давайте будем гением компьютера.