WSGI僅僅是一套規則來幫助統一和標準化Python應用程序與Web服務器的通信方式。它定義了應用程序應該如何發送響應以及服務器應如何與應用程序進行通信並傳遞有關請求的環境和其他詳細信息。任何需要與任何Web服務器通信的應用程序都會實現WSGI,因爲它實際上是Python的標準和推薦方法。 WSGI開始統一其他實現(CGI,mod_python,FastCGI)。
wsgiref是參考實現的WSGI接口。它就像幫助開發人員瞭解如何在自己的應用程序中實現WSGI的藍圖。
您提到的其他內容是實現WSGI標準的所有不同應用程序;但有一些例外:
Twisted是一個庫,用於創建可通過網絡進行通信的應用程序。 任何種類的網絡,以及任何類型的應用程序。它不僅限於網絡。
Tornado與Twisted類似,它也是一個網絡通信庫;但它是專爲非阻塞應用程序。需要長時間連接服務器的東西(比如說,一個顯示實時提要的應用程序)。
CherryPy是一個用於創建Web應用程序的極小Python框架。它執行 WSGI。
Werkzeug是一個實現WSGI的庫。所以,如果你正在開發一個需要講WSGI的應用程序,你會導入werkzeug,因爲它提供了你需要的WSGI的各個部分。
uWSGI是一個允許輕鬆託管多個Web應用程序的項目。它作爲名稱中的WSGI是因爲WSGI是與應用程序一起發佈的第一個插件。這可能是這個列表中的奇怪之處,因爲它不是一個開發框架,而更像是一種管理多個Web應用程序的方式。
是實現 WSGI
Web服務器可以傾訴也實現WSGI的任何應用程序。modwsgi
是Web服務器的WSGI的流行實現;它可用於Apache和Nginx,IIS可用於isapi wsgi module。
wsgi是web-server和python之間的接口。任何符合WSGI的應用程序都可以與任何具有WSGI驅動程序的服務器一起運行。它還使您能夠在Web服務器和應用程序之間放置中間件,例如可以處理路由,會話管理,緩存等。 – Thayne