Подключение к серверу 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, для управления рабочими и потоками.