2015-01-06 53 views
0

Flask's documentation在生產服務器下運行的Flask應用程序仍然是Flask應用程序嗎?

您可以在開發過程中使用內置的服務器,但你應該使用 生產應用的全面部署選項。

假設我使用的是mod_wsgi

Flask仍在Apache的委託之下運行「底層」還是Flask「走了」?根據this SO,Flask的一個明顯限制是它是單線程的。如果Apache只是委託給Flask,我們不會遇到同樣的問題嗎?如果沒有,Flask是什麼?是什麼使它成爲「Flask應用程序」?換句話說,在Apache服務器下運行的生產Flask應用程序是否是Flask應用程序,如果是這樣,爲什麼?

回答

4

Flask不是開發服務器,它是處理Web應用程序請求/響應週期的框架。 (dev服務器甚至不是Flask的一部分,它是Werkzeug的一部分)

部署的項目通常由Web服務器(Apache,Nginx等),應用程序服務器(mod_wsgi,uwsgi,gunicorn,等等)和一個WSGI應用程序(在這種情況下是Flask)。

開發服務器可以讓您在沒有設置真正的應用程序服務器時輕鬆運行您的應用程序。在你的情況下,mod_wsgi代替開發服務器,它們都運行Flask應用程序。

+0

So Flask是一個框架+開發服務器。當使用Apache或其他生產服務器時,只使用Flask的請求/響應處理框架? – gwg

+1

實際上,開發服務器是Werkzeug的一部分,而不是Flask。這聽起來像是你正在反思這一點。只需用Flask開發一個應用程序,就會有一個Flask應用程序。 – davidism

相關問題