當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端時代的來臨, 所有的繁重工作都可以在遠處而不會是各台手機或者電腦, 那麼這些裝置究竟要怎麼跟遠處的伺服器溝通呢? 這中間的溝通格式就是API(應用程式介面), 也就是機器與機器之間能夠理解的語言。
那麼Python的生態圈也誕生了許多的API框架, 包括最早期的Django, 以及中期發展的Flask, 到最後的新星 FastAPI, 各個框架都有各自的優劣之處, 並非絕對的好壞, 而是取決於我們什麼樣的需求選擇什麼樣的框架, 那麼這邊就稍微列出三者的優缺點與適用場景。
💡 最早期的一套框架, 功能也非常的完整, 但包袱太大, 早期以WSGI進行開發, 後期才加入ASGI, 至於好不好用就需要自行研讀囉! 就像是老屋翻新一樣, 有的人覺得習慣,但有的人卻喜歡較新的格局設計。
優點:
缺點:
適用場景:
💡 中期發展的框架, 也相對的成熟, 但與 Django 一樣初期基於WSGI後續才加入了ASGI。
優點:
缺點:
適用場景:
💡 後起的新秀, 整合了WSGI與ASGI的協議規範, 讓同步與非同步的傳輸協議更加的自然。
優點:
缺點:
適用場景:
上述的簡介我們常常提到WSGI與ASGI, 這兩者究竟是什麼呢? 歡迎參考:
在這邊我們試著盡可能的實際列出開發上的需求, 那麼假設我們的應用是一個語音辨識引擎…, 那麼可能會這樣去分析我們所需的框架。
從成本、品質、效率這三個面向去一一列出我們的需求並試著落在三者的區塊之上,最終就可以得出哪些部份對於我們的應用來說是比較需要的, 那麼就可以從刪去之後的面向去分析相關的框架,最終選出最適合的框架。
框架的選擇取決於需求, 無論選擇哪種框架,都需要考慮專案規模、開發效率、效能、可維護性等因素。
Flask適合小型專案和需要框架靈活性的開發人員,Django適合建立複雜的Web應用程式和CMS,FastAPI適合建立高效能即時應用程式。
在選擇Python作為Web開發語言時,必須考慮專案的需求和特點,以及技術團隊和可用的時間和資源等因素。