A solução de @ sajid-siddiqi é tecnicamente correta, mas tenha em mente que o servidor WSGI embutido em Werkzeug (que é empacotado no Flask e para o que ele serve app.run()
) é apenas de thread único.
Instale um servidor WSGI para poder lidar com o comportamento multithread. Fiz muitas pesquisas sobre vários desempenhos de servidores WSGI . Suas necessidades podem variar, mas se tudo o que você está usando é o Flask , eu recomendaria um dos seguintes servidores da web.
Atualização (2020-07-25): Parece que o gevent começou a oferecer suporte ao python3 5 anos atrás, logo depois que comentei que não, então você pode usar o gevent agora.
gevent
Você pode instalar gevent por meio de pip com o comando pip install gevent
ou pip3 com o comando pip3 install gevent
. As instruções sobre como modificar seu código de acordo estão aqui: https://flask.palletsprojects.com/en/1.1.x/deploying/wsgi-standalone/#gevent
Meinheld
gevent é melhor, mas de todos os benchmarks que observei que envolvem testes do mundo real, meinheld parece ser o servidor WSGI mais direto e simplista . (Você também pode dar uma olhada no uWSGI se não se importar com mais configurações.)
Você também pode instalar o meinheld por meio do pip3 com o comando pip3 install meinheld
. A partir daí, observe o exemplo fornecido na fonte meinheld para integrar o Flask : https://github.com/mopemope/meinheld/blob/master/example/flask_sample.py
* NOTA: Do meu uso do PyCharm , a linha é from meinheld import server
destacada como um erro, mas o servidor será executado, portanto, você pode ignorar o erro.