我正在學習使用Flask來運行Web應用程序。許多指南描述如何使用uWSGI作爲運行Flask應用程序的服務器。如果uWSGI可以運行該應用程序,Flask仍然需要它嗎?使用uWSGI運行應用程序時需要使用Flask嗎?
-1
A
回答
4
燒瓶不運行應用程序,它是的應用程序。 uWSGI運行諸如使用Flask創建的應用程序。瓶不是必需的,但一些應用程序是。
WSGI是PEP 3333中定義的一種標準,它描述了HTTP服務器如何與Python應用程序通信。 uWSGI實現WSGI的服務器端。 Flask是創建實現WSGI應用程序端的程序的框架。
鑑於WSGI是一個記錄的標準,創建WSGI應用程序時不需要Flask。 uWSGI沒有實現應用程序端,所以你仍然可以編寫一個獨立於它的應用程序並使用uWSGI來提供它。任何其他的WSGI框架都可以使用,或者可以手動實現。
在其最基本的一個WSGI應用是一個可調用,它接受一個environ
字典和start_response
功能,在字典作用於數據,帶有狀態和頭調用start_response
,然後返回響應的主體中。例如,uWSGI可以爲它提供服務,就像它可以爲Flask應用程序提供服務一樣。
def basic_application(environ, start_response):
start_response('200 OK', [('Content-type', 'text/plain')])
return b'Hello, World!'
從PEP:
這不應該被解釋爲意味着應用程序開發人員將使用WSGI作爲web編程的API!假設應用程序開發人員將繼續使用現有的高級框架服務來開發他們的應用程序。 WSGI是框架和服務器開發人員的工具,並不打算直接支持應用程序開發人員。
雖然可以做,但不建議。有太多的東西(請參閱PEP)很難得到正確的結果,而且沒有特別有趣或容易實現,這些東西需要編寫比上述示例更強大的任何東西。這就是爲什麼像Flask這樣的框架存在的原因。
相關問題
- 1. nginx如何與運行Flask應用的uWSGI配合使用?
- 2. 我需要在我的Flask-SQLAlchemy項目中使用應用程序工廠嗎?
- 3. 初始化使用Apache和mod_wsgi運行的Flask應用程序
- 4. 使用Plesk在Apache下運行Flask應用程序
- 5. 無法使用開發服務器運行Flask應用程序
- 6. 無法使用Flask和Shapely在heroku上運行應用程序
- 7. 我不需要Flask應用程序中的run()方法嗎?
- 8. 在Heroku上運行Flask應用程序
- 9. 你需要python來運行python gtk/pyQt應用程序嗎?
- 10. Android應用程序需要在Android Studio中運行Gradle嗎?
- 11. 使用CGI部署Flask應用程序
- 12. OWIN自主應用程序使用Ninject OWINHost需要system.web嗎?
- 13. 要使Grails應用程序很好地擴展,您需要使用EJB嗎?
- 14. 需要加載多個應用程序在UWSGI
- 15. 在運行我的Java應用程序時需要幫助
- 16. Chromecast應用程序需要WakeLock嗎?
- 17. Appcelerator Python應用程序需要Silverlight嗎?
- 18. 當我運行g ++時,我需要使用-o嗎?
- 19. 應用程序在uwsgi線程模式下運行緩慢
- 20. 需要運輸應用程序
- 21. 使用MPI應用程序運行perf
- 22. 爲什麼在使用JSF Web應用程序時需要beans.xml?
- 23. 構建桌面應用程序時需要使用什麼?
- 24. 需要在模擬器上運行iPhone應用程序而不使用xcode
- 25. 我需要運行使用Xamarin Studio構建的C#應用程序...?
- 26. 需要關閉所有正在運行的應用程序,而使用Windows註銷從C#應用程序
- 27. 使用ClickOnce可以避免「您想要運行此應用程序」提示嗎?
- 28. 當應用程序在後臺運行時需要運行下載
- 29. 我可以使用Hendrix來運行Falcon應用程序嗎?
- 30. 可以使用貼紙運行django應用程序嗎?