Запуск API на Windows Server — Python

Я написал API с использованием python (Flask Microframework). Чтобы запустить этот API, я открываю командную строку, перехожу к папке API и запускаю файл Python «run.py», используя следующую команду:

python [filename].py

Запись, в которой я получаю сообщение "Выполняется на http://127.0.0.1:5000/" Следовательно, я могу получить доступ к данным, используя следующий URL-адрес

localhost:5000/[API call]

Мой вопрос заключается в том, что если я поставлю все это в Windows Server (что потребует установки Python и необходимых библиотек) и запущу файл Python «run.py», смогу ли я получить доступ к API с любой другой машины, как указано ниже URL

[Server IP Address]:5000/[API call]

То, как я могу получить доступ к API, используя локальный хост на моей машине, смогу ли я получить доступ к API, заменив локальный хост IP-адресом сервера.


person user3378579    schedule 24.04.2015    source источник


Ответы (3)


Нет, без изменений не получится. Если вы прослушиваете 127.0.0.1, к вам могут подключиться только клиенты на той же машине (localhost, 127.0.0.1). Вам нужно слушать на 0.0.0.0.

Это подробно объясняется в Quickstart документах Flask:

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

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

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

app.run(host='0.0.0.0')

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

Затем вы увидите Running on http://0.0.0.0:5000/ и сможете подключаться к нему с других компьютеров, используя IP-адрес сервера. (Предполагая, что они находятся в доступных сетях и на пути нет брандмауэров и т. д., конечно…)

person abarnert    schedule 24.04.2015

Если вы работаете в производственном режиме (или что-то в этом роде), не запускайте его с помощью командной строки, потому что это должно использоваться только для разработки. Используйте методы, рекомендованные в официальной документации, для развертывания вашего приложения.

person José Ricardo Pla    schedule 24.04.2015

Приведенный ниже учебник очень полезен
https://claudiosparpaglione.wordpress.com/2013/03/06/how-to-deploy-flask-applications-to-apache-webserver/

person user3378579    schedule 25.04.2015