
選擇更好的框架
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 框架在其類別中都是最好的,但都有其自身的優勢和劣勢(取決於專案需求)。因此,一種型別的框架並不適合所有型別的專案。