วิธีแก้ปัญหาจาก @ sajid-siddiqi นั้นถูกต้องในทางเทคนิค แต่โปรดทราบว่าเซิร์ฟเวอร์WSGIในตัวในWerkzeug (ซึ่งบรรจุลงในFlaskและสิ่งที่ใช้สำหรับapp.run()
) เป็นเพียงเธรดเดียวเท่านั้น
ติดตั้งเซิร์ฟเวอร์WSGIเพื่อให้สามารถจัดการกับลักษณะการทำงานแบบมัลติเธรด ฉันทำการวิจัยมากมายเกี่ยวกับประสิทธิภาพของเซิร์ฟเวอร์WSGI ความต้องการของคุณอาจแตกต่างกันไป แต่ถ้าทั้งหมดที่คุณใช้คือFlaskฉันขอแนะนำเว็บเซิร์ฟเวอร์ต่อไปนี้
อัปเดต (2020-07-25): ดูเหมือนว่าgeventเริ่มรองรับpython3 เมื่อ 5 ปีก่อนไม่นานหลังจากที่ฉันแสดงความคิดเห็นว่ามันไม่ได้ดังนั้นคุณสามารถใช้gevent ได้ในตอนนี้
gevent
คุณสามารถติดตั้งgeventผ่านpipมีคำสั่งpip install gevent
หรือpip3pip3 install gevent
กับคำสั่ง คำแนะนำในการแก้ไขโค้ดของคุณมีอยู่ที่นี่: https://flask.palletsprojects.com/en/1.1.x/deploying/wsgi-standalone/#gevent
meinheld
geventดีกว่า แต่จากเกณฑ์มาตรฐานทั้งหมดที่ฉันได้ดูซึ่งเกี่ยวข้องกับการทดสอบในโลกแห่งความเป็นจริงmeinheldดูเหมือนจะเป็นเซิร์ฟเวอร์WSGI ที่ง่ายและตรงไปตรงมาที่สุด (คุณสามารถดูuWSGI ได้หากคุณไม่สนใจการกำหนดค่าเพิ่มเติม)
นอกจากนี้คุณยังสามารถติดตั้งmeinheldผ่านpip3pip3 install meinheld
กับคำสั่ง จากนั้นดูตัวอย่างที่ให้ไว้ในแหล่งที่มาของmeinheldเพื่อรวมFlask : https://github.com/mopemope/meinheld/blob/master/example/flask_sample.py
* หมายเหตุ: จากการใช้PyCharmของฉันบรรทัดจะfrom meinheld import server
เน้นว่าเป็นข้อผิดพลาด แต่เซิร์ฟเวอร์จะทำงานดังนั้นคุณจึงไม่สนใจข้อผิดพลาด