La soluzione da @ sajid-siddiqi è tecnicamente corretta, ma tieni presente che il server WSGI integrato in Werkzeug (che è impacchettato in Flask e per cosa usa app.run()) è solo a thread singolo.
Installa un server WSGI per poter gestire il comportamento multi-thread. Ho fatto un sacco di ricerche su varie prestazioni del server WSGI . Le tue esigenze possono variare, ma se tutto ciò che stai usando è Flask , allora consiglierei uno dei seguenti server web.
Aggiornamento (2020-07-25): Sembra che gevent abbia iniziato a supportare python3 5 anni fa, poco dopo che ho commentato che non lo faceva, quindi puoi usare gevent ora.
gevent
Puoi installare gevent tramite pip con il comando pip install gevento pip3 con il comando pip3 install gevent. Le istruzioni su come modificare il codice di conseguenza sono qui: https://flask.palletsprojects.com/en/1.1.x/deploying/wsgi-standalone/#gevent
meinheld
gevent è migliore, ma da tutti i benchmark che ho esaminato che implicano test nel mondo reale, meinheld sembra essere il server WSGI più diretto e semplicistico . (Puoi anche dare un'occhiata a uWSGI se non ti dispiace un po 'di configurazione in più.)
Puoi anche installare meinheld tramite pip3 con il comando pip3 install meinheld. Da lì, guarda l'esempio fornito nel sorgente meinheld per integrare Flask : https://github.com/mopemope/meinheld/blob/master/example/flask_sample.py
* NOTA: dal mio utilizzo di PyCharm , la riga viene from meinheld import serverevidenziata come un errore, ma il server verrà eseguito, quindi puoi ignorare l'errore.