選擇更好的框架



Python Web 框架的世界提供了很多選擇。一些值得考慮的突出框架包括 Django、Flask、Bottle、Diesel、Web2py、Pyramid、Falcon、Pecan 等,它們都在爭奪開發人員的關注。像 Pyramid、Django、Web2py 和 Flask 這樣的框架,都各有其優缺點;僅僅為您的專案選擇一個就成為了一個艱難的抉擇。

Dash 完全是為了滿足不同的需求而設計的。因此,作為一名開發者,您希望將眾多選項縮減到一個能夠幫助您按時完美完成專案的選項。

如果我們比較 Flask、Pyramid 和 Django 框架,Flask 是一個微框架,主要針對具有簡單需求的小型應用程式,而 Pyramid 和 Django 則都面向大型應用程式。Pyramid 以靈活性和自由度為設計理念,因此開發者擁有適合專案的正確工具。在 Pyramid 的情況下,開發者可以自由選擇資料庫、URL 結構、模板樣式等等。然而,Django 包含了 Web 應用程式所需的所有功能,因此我們只需要安裝 Django 並開始工作。

Django 帶有一個 ORM,而 Pyramid 和 Flask 則由開發者決定如何(或是否)希望儲存其資料。通常,非 Django Web 應用程式最常用的 ORM 是 SQLAlchemy,但是,其他選項可以是 DjangoDB、MongoDB、LevelDB 和 SQLite。

作為一名開發者,如果我必須在我的專案中選擇 Django 和 Web2py 之一,我需要對這兩個框架的優勢和侷限性有所瞭解。所以讓我們比較一下 Django 和 Web2py -

Django

Django 的社群是一個很大的優勢。對於開發者來說,這意味著資源將更加豐富。具體來說,這歸結為 -

  • 文件
  • 開源資源
  • 第三方應用程式支援
  • 部署支援
  • 有幫助的開發人員的 IRC 頻道

Django 擁有一個非常龐大的開發團隊和文件社群。當我們處理編寫複雜的後臺時,它是正確的框架,因為它提供了許多第三方應用程式,可以幫助您自動執行使用者邏輯(註冊、身份驗證)、非同步任務、API 建立、部落格等。

Web2py

Web2py 非常適合快速開發簡單的 Web 應用程式或 HTTP 伺服器。以下是 Web2py 的一些優勢和侷限性。

Web2py 的優勢

以下是 Web2py 框架的一些優勢 -

  • 在開發速度和簡單性方面,Web2py 與 Django 和 Flask 相比是一個很有潛力的框架。由於 Web2py 使用基於 Python 的模板語言,這使得 Python 開發人員在瞭解模板編寫基礎知識後,可以立即開始編寫程式碼。

  • Web2py 可以執行編譯後的 Python 程式碼作為最佳化,以降低執行時間並允許您以編譯的方式分發程式碼。

Web2py 的侷限性

以下是該框架的一些侷限性

  • Web2py 支援 doctests,但它不支援單元測試。現在,由於 doctests 的範圍有限,因此它們不是最佳選擇。

  • 生產模式和開發模式之間沒有區別。如果發生異常,每次都會生成工單,您必須導航到該工單以檢查錯誤。這在生產伺服器的情況下可能會有所幫助,但在開發環境中會很困難,因為開發人員確實需要立即看到錯誤,而不是檢查工單號。

  • Web2py 具有良好的資料庫抽象層 (DAL),允許您抽象許多型別的資料庫引擎,但它缺乏強大的 ORM。如果您正在處理相對較大的模型,您的程式碼將分散在所有巢狀定義和屬性中,這會使事情變得複雜。

  • 我們無法在沒有修改的情況下使用標準的 Python 開發工具,因為 Web2py 的 IDE 支援非常糟糕。

Django 和 Web2py 框架是全棧框架。這意味著它們提供了所有必要的程式碼 - 從表單生成器到模板佈局和表單驗證,並讓您根據自己的特定需求編寫內容。

但是,對於像 Flask 和 Pyramid 這樣的非全棧框架,如果您想建立一個功能齊全的網站,您需要自己新增很多程式碼和額外的部分。這需要大量的技能和時間。

Dash

Dash 完全是為了構建儀表板的響應式框架這一特定任務而設計的。Plotly 的 Dash 是一種很好的方法,可以讓 Python 開發人員建立互動式 Web 應用程式,而無需學習 Javascript 和前端 Web 開發。Dash 構建在 Flask、Plotly.js、React 和 React Js 之上。

Dash 與其他框架(上面提到的)之間沒有可比性,因為它們屬於不同的框架類別。以下是優先選擇 Dash 而不是其他互動式儀表板框架(Jupiter 儀表板、matplotlib 等)的一些原因 -

  • 只需 50 行程式碼,您就可以編寫一個簡單的“Hello World”Dash 應用程式,因為 Dash 需要很少的樣板程式碼。

  • 整個 Dash 應用程式都是用 Python 語言編寫的,Python 是全球最受歡迎的語言。

  • 在您自己的 Python 程式碼中,您可以使用響應式 Dash“回撥”將 Dash 互動式元件(如下拉列表、文字輸入、滑塊和圖形)繫結在一起。

  • 複雜的 Dash 應用程式 UI 可以有多個輸入、多個輸出以及依賴於其他輸入的輸入。

  • 多個使用者可以同時使用 Dash 應用程式。

  • 為了使用 React 建立您自己的 Dash 元件,Dash 使用 React.js 渲染元件幷包含一個外掛系統。

  • 開發人員或作者可以編寫響應單擊、懸停或選擇圖形上點的 Dash 應用程式,因為 Dash 的圖形元件是互動式的。

結論

我們可以得出結論,從眾多可用的 Python 框架中選擇合適的框架,完全取決於專案的型別、複雜性、小型或企業級專案、可用的社群支援或線上資源、可擴充套件性、安全性等。

上面提到的 Python 框架在其類別中都是最好的,但都有其自身的優勢和劣勢(取決於專案需求)。因此,一種型別的框架並不適合所有型別的專案。

廣告