Решение от @ sajid-siddiqi технически правильное, но имейте в виду, что встроенный сервер WSGI в Werkzeug (который упакован во Flask и для чего он используется app.run()
) является только однопоточным.
Установите сервер WSGI, чтобы иметь возможность обрабатывать многопоточное поведение. Я провел кучу исследований производительности различных серверов WSGI . Ваши потребности могут различаться, но если вы используете только Flask , я бы порекомендовал один из следующих веб-серверов.
Обновление (2020-07-25): похоже, gevent начал поддерживать python3 5 лет назад, вскоре после того, как я прокомментировал, что это не так, поэтому вы можете использовать gevent сейчас.
Gevent
Вы можете установить gevent через pip с помощью команды pip install gevent
или pip3 с помощью команды pip3 install gevent
. Инструкции о том, как соответствующим образом изменить ваш код, находятся здесь: https://flask.palletsprojects.com/en/1.1.x/deploying/wsgi-standalone/#gevent
Meinheld
gevent лучше, но из всех тестов, которые я просмотрел, которые включают тестирование в реальном мире, meinheld кажется самым простым и упрощенным сервером WSGI . (Вы также можете взглянуть на uWSGI, если не возражаете против дополнительных настроек.)
Вы также можете установить meinheld через pip3 с помощью команды pip3 install meinheld
. Оттуда посмотрите на образец, предоставленный в источнике meinheld для интеграции Flask : https://github.com/mopemope/meinheld/blob/master/example/flask_sample.py
* ПРИМЕЧАНИЕ. Из-за того, что я использовал PyCharm , строка from meinheld import server
выделяется как ошибка, но сервер будет работать, поэтому вы можете игнорировать ошибку.