Pyramid 框架



Pyramid 是一個用 Python 構建的通用、開源的 Web 應用程式開發框架。它允許 Python 開發人員輕鬆建立 Web 應用程式。

Pyramid 背後是由企業知識管理系統 KARL(喬治·索羅斯的一個專案)支援。

安裝、啟動和配置

如所述,“從小開始,做大,保持完成”的框架,Pyramid 非常類似於 Flask,安裝和執行起來非常簡單。事實上,一旦你開始構建這個應用程式,你就會發現一些模式與 Flask 類似。

以下是建立 Pyramid 框架環境的步驟:

  • 首先,建立一個專案目錄。在這裡,我們建立了一個名為 pyramidProject 的目錄(您可以選擇任何您想要的名稱)。

  • 接下來,建立一個虛擬環境,您將在其中安裝所有專案特定的依賴項。在這裡,我們建立了一個名為 pyramidEnv 的虛擬環境資料夾,其中安裝了 Pyramid。

  • 然後,進入目錄 pyramidEnv 並使用 pip install pyramid 安裝 Pyramid。

一旦按照上述步驟完成所有操作,您的目錄結構將如下所示:

Directory Structure

並且系統中安裝的 Pyramid 版本如下所示:

Pyramid Version

核心概念

Pyramid 框架基於以下核心概念:

  • Zope(可擴充套件性、遍歷、宣告式安全)——Pyramid 在可擴充套件性、遍歷的概念和宣告式安全方面鬆散地基於 Zope。

  • Pylons(URL 分發、對永續性的非強制性檢視、模板等)——Pyramid 獲取其概念的另一個領域是 Pylons 專案。Pylons 具有路由的概念,它呼叫 Pyramid 框架內的 URL 分發,並且它們還具有對永續性層或模板的非強制性檢視。

  • Django(檢視、文件級別)——Pyramid 也從 Django 獲得提示。我們獲取檢視、路由 URL 和文件級別的方式非常 Django 化。

以下是 Pyramid 框架的功能:

  • 它是已知最快的 Python Web 框架。

  • 它支援小型和大型專案(當您超出小型框架的範圍時,為什麼要重寫)。

  • 它支援像微框架一樣單檔案 Web 應用程式。

  • 它具有內建的會話。

  • 它支援類似於 Plone/Zope 的事件。

  • 它提供事務管理(如果您已經注意到我們之前使用過 Zope)。

配置

配置是影響應用程式操作的設定。有兩種方法可以配置 Pyramid 應用程式:命令式配置和宣告式配置。

Pyramid 配置支援:

  • 命令式配置,甚至覆蓋基於裝飾器的配置

  • 配置衝突檢測(包括更本地與更不本地確定)

  • 配置可擴充套件性(包含來自多個應用程式)

  • 靈活的身份驗證和授權策略

  • 配置的程式化自省(檢視路由的當前狀態以生成導航)

URL 生成

在 Pyramid 中,我們可以為路由、資源和靜態資產生成 URL。使用 URL 生成 API 很容易且靈活。透過 Pyramid 的各種 API 生成 URL,使用者可以隨意更改配置,而無需擔心破壞任何網頁的連結。

因此,簡而言之,Pyramid 中的 URL:

  • 支援 URL 生成,以便允許對應用程式進行更改,而不會破壞連結。

  • 生成位於應用程式內部或外部的靜態資源的 URL。

  • 支援路由和遍歷。

檢視

Pyramid 的主要工作之一是在請求到達您的應用程式時查詢並呼叫檢視可呼叫物件。檢視可呼叫物件是程式碼片段,它們會對您應用程式中發出的請求做出一些有趣的響應。

當您將檢視對映到 URL 分發或 Python 程式碼時,可以進行任何型別的呼叫。檢視可以是函式宣告或例項,它可以用作 Pyramid 中的檢視。

下面給出了一些關於檢視的重要要點:

  • 檢視從任何可呼叫物件生成。

  • 基於渲染器的檢視可以簡單地返回字典(不需要返回 Web 風格的物件)。

  • 支援每個路由的多個檢視(GET 與 POST 與 HTTP 標頭檢查等)。

  • 檢視響應介面卡(當您想要指定如何處理檢視返回值與響應物件時)。

可擴充套件性

Pyramid 在設計時就考慮了可擴充套件性。因此,如果 Pyramid 開發人員在構建應用程式時牢記某些約束條件,則第三方應該能夠更改應用程式的行為,而無需修改其原始碼。遵守某些約束條件的 Pyramid 應用程式的行為可以在沒有任何修改的情況下被覆蓋或擴充套件。它專為靈活部署到多個環境而設計(無單例)。Pyramid 具有“Tweens”中介軟體支援(WSGI 中介軟體,但在 Pyramid 本身上下文中執行)。

執行“Hello, Pyramid”程式

在安裝 Pyramid 框架後,我們可以想到的最簡單的程式來檢查一切是否正常,就是執行一個簡單的“Hello, World”或“Hello, Pyramid”程式。

以下是我的 Pyramid“Hello, Pyramid”程式,埠號為 8000:

Pyramid Program

上面的簡單示例易於執行。將其儲存為 app.py(在此,我們將其命名為 pyramid_helloW.py)。

執行最簡單的程式:

Running Program

接下來,在瀏覽器中開啟 https://:8000/,您將看到如下所示的“Hello, Pyramid!”訊息:

Hello Pyramid

以下是上述程式碼的解釋:

第 1-3 行

在檔案開頭,我們有 import 語句。第一行匯入 make_server 函式,當將其傳遞給應用程式時,它可以建立一個簡單的 Web 伺服器。第二行和第三行分別從 Pyramid 匯入 configuration 和 Response 函式。這些函式分別用於配置應用程式的詳細資訊和設定引數以及響應請求。

第 5-6 行

現在我們有一個名為 hello_world 的函式定義。實現生成響應的檢視程式碼。滿足檢視要求的函式負責呈現將傳遞迴請求實體的文字。在上述情況下,該函式在被呼叫時使用我們之前匯入的 Response 函式。這會傳回應提供給客戶端的值。

第 8 行

if __name__ == ‘__main__’: Python 正在說,“從命令列執行時從這裡開始”,而不是在匯入此模組時。

第 9-11 行

在第 9 行,我們從我們在程式頂部匯入的 configurator 函式建立的物件中建立一個名為 config 的變數。第 10 行和第 11 行呼叫此物件的 add_route 和 add_view 方法。此方法用於定義應用程式可使用的檢視。正如我們所看到的,我們傳遞了我們之前定義的 hello_world 函式。這就是該函式實際上被合併為檢視的地方。

第 12-14 行

在此,我們透過呼叫 config 物件的 make_wsgi_app 方法來實際建立 WSGI 應用程式。這使用該物件 的屬性(例如我們新增的檢視)來建立應用程式。然後,此應用程式被傳遞給我們匯入的 make_server 函式,以建立一個可以啟動 Web 伺服器來為我們的應用程式提供服務的物件。最後一行啟動此伺服器。

我們的 hello world 應用程式 是最簡單和最可能的 Pyramid 應用程式之一,“命令式”配置。它是命令式的,因為當我們執行配置任務時,Python 的全部功能都可用。

總而言之,Pyramid 是一個具有龐大且活躍的社群的開源 Python Web 框架。這個龐大的社群有助於使 Python Web 框架流行和相關。Pyramid Web 框架透過提供一組強大的功能和工具來簡化和加速 Web 應用程式開發。

廣告