La solución de @ sajid-siddiqi es técnicamente correcta, pero tenga en cuenta que el servidor WSGI incorporado en Werkzeug (que está empaquetado en Flask y para lo que se usa app.run()) es solo de un solo subproceso.
Instale un servidor WSGI para poder manejar el comportamiento de subprocesos múltiples. Investigué un montón sobre el rendimiento de varios servidores WSGI . Sus necesidades pueden variar, pero si todo lo que está usando es Flask , le recomendaría uno de los siguientes servidores web.
Actualización (2020-07-25): Parece que gevent comenzó a admitir python3 hace 5 años, poco después de que comenté que no era así, por lo que puede usar gevent ahora.
gevent
Puede instalar gevent a través de pip con el comando pip install gevento pip3 con el comando pip3 install gevent. Las instrucciones sobre cómo modificar su código en consecuencia están aquí: https://flask.palletsprojects.com/en/1.1.x/deploying/wsgi-standalone/#gevent
yo
gevent es mejor, pero de todos los puntos de referencia que he analizado que involucran pruebas en el mundo real, meinheld parece ser el servidor WSGI más sencillo y simplista . (También puede echar un vistazo a uWSGI si no le importa más configuración).
También puede instalar meinheld a través de pip3 con el comando pip3 install meinheld. A partir de ahí, mire la muestra proporcionada en la fuente de meinheld para integrar Flask : https://github.com/mopemope/meinheld/blob/master/example/flask_sample.py
* NOTA: Por mi uso de PyCharm , la línea se from meinheld import serverresalta como un error, pero el servidor se ejecutará, por lo que puede ignorar el error.