Подключение к серверу Flask с разных устройств в сети приводит к истечению времени ожидания

В настоящее время я изучаю Flask и решил попробовать подключиться к очень простому серверу с других устройств в моей сети. Я следовал совету, данному на Flask - настройте dev-сервер, чтобы он был виден через сеть, и изменил

app.run()

в

app.run(host='0.0.0.0')

Тем не менее, это не работает правильно.

У меня есть настройки сервера Flask следующим образом:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hey there'

if __name__ == '__main__':
   app.run(host='0.0.0.0')

Когда я запускаю сервер, это вывод:

Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

Сервер работает нормально, когда я подключаюсь через локальный хост, однако, я всегда получаю тайм-аут, когда пытаюсь подключиться с другого устройства в той же сети, используя:

http://<my_ip_address>:5000 

Я попытался подключиться к серверу (который работает на моем Macbook Air) как с моего рабочего стола Windows 7, так и с моего iPhone, причем оба они получили тайм-ауты.

Любая помощь по этому вопросу будет принята с благодарностью.

1 ответ

Для одновременной обработки запросов вы можете запустить Flask с:

app.run(threaded=True)

По умолчанию Flask запускается с одним потоком, поэтому последующие запросы блокируются, пока поток не станет доступным. В производстве вам понадобится контейнер WSGI, например Gunicorn, для управления рабочими и потоками.

Другие вопросы по тегам