2016-04-15 101 views

回答

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這樣的框架存在的原因。

相關問題