Python Pyramid 框架

17 Mar 2025 | 6 分钟阅读

Pyramid 是一个通用、开源的 Python 框架,用于开发 Web 应用程序。该框架允许 Python 开发人员轻松创建 Web 应用程序。

Pyramid 框架得到了企业知识管理系统 KARL(乔治·索罗斯项目)的支持。

设置环境

正如“从小处着手,大处收尾,持之以恒的框架”所述,Pyramid 框架与 Flask 非常相似,安装和运行需要花费一些精力。当我们开始构建此应用程序时,会发现其中一些模式与 Flask 类似。

以下是创建 Pyramid 框架环境的步骤:

步骤 1: 我们将创建一个项目目录。我们将其命名为 projectPyramid(您可以选择任何您喜欢的名称)。

步骤 2: 我们将创建一个虚拟环境,并在其中安装项目所需的所有依赖项。我们将该虚拟环境文件夹命名为 pyramidEnv,并在其中安装 Pyramid 框架。

步骤 3: 现在,让我们进入 pyramidEnv 目录并安装框架。

安装 Pyramid 框架

为了安装 Pyramid 框架,我们将使用 'pip',这是一个用于管理所需包的框架,可以从受信任的公共存储库安装模块。一旦我们有了 'pip',就可以使用 Windows 命令提示符 (CMD) 或终端中的命令来安装 pyramid 框架,如下所示:

语法

验证安装

框架安装完成后,我们可以通过创建一个空的 Python 程序文件并编写一个 import 语句来验证它,如下所示:

文件:verify.py

现在,保存上述文件并在终端中使用以下命令执行它:

语法

如果上面的 Python 程序文件没有返回任何错误,则表示模块已成功安装。但是,如果引发了异常,请尝试重新安装框架,并且还建议参考框架的官方文档。

理解 Pyramid 框架的核心概念

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

  1. Zope(可扩展性、遍历、声明式安全)
  2. Pylons(URL 分派、对持久化、模板等的非意见化视图)
  3. Django(视图、文档级别)

Zope - Pyramid 在可扩展性、遍历概念和声明式安全方面松散地基于 Zope。

Pylons - Pylons 项目是 Pyramid 借鉴概念的另一个领域。Pylons 具有路由概念,该路由调用 Pyramid 框架内的 URL 分派,并且它们还具有对持久化层或模板的非意见化视图。

Django - Pyramid 也从 Django 中获得启发。我们获取视图、路由 URL 的方式以及文档级别都非常像 Django。

Pyramid 框架的一些功能如下:

  1. 它是已知最快的 Python Web 框架。
  2. 它支持小型和大型项目(当小型框架无法满足需求时,为什么要重写?)。
  3. 它支持像微框架那样的单文件 Web 应用。
  4. 它内置了会话功能。
  5. 它支持与 Pylon/Zope 类似的事件。
  6. 它提供事务管理(如果您之前已经注意到,我们之前使用过 Zope)。

理解配置

配置是影响应用程序操作的设置。有两种方法可以配置 Pyramid 应用程序:命令式配置和声明式配置。

Pyramid 配置维护 -

  1. 命令式配置,甚至可以基于装饰器覆盖配置。
  2. 配置冲突检测(涉及本地 vs. 非本地的确定)。
  3. 配置可扩展性(包含来自多个应用程序)。
  4. 灵活的身份验证和授权策略。
  5. 配置的可编程内省(查看路由的当前状态以生成导航)。

理解 URL 生成

我们可以在 Pyramid 框架中为路由、资源和静态资产生成 URL。使用 API 来生成 URL 非常简单且灵活。通过生成 Pyramid 框架的各种 API 的 URL,用户可以随意更改配置,而无需过多担心打破与任何网页的链接。

因此,简而言之,Pyramid 中的 URL -

  1. 支持生成 URL,以便于更改应用程序而不会破坏链接。
  2. 生成位于应用程序内部或外部的静态资源的 URL。
  3. 支持路由和遍历。

理解视图

Pyramid 框架的主要工作之一是在请求到达应用程序时查找并调用视图可调用对象。视图可调用对象是代码片段,它们响应应用程序中发出的请求执行有趣的操作。

每当我们根据 URL 分派或 Python 代码映射视图时,都可以是任何类型的可调用对象。视图可以被视为函数声明或实例,并且它们可以在 Pyramid 框架中用作视图。

以下是一些与视图相关的要点:

  1. 视图是从任何可调用对象生成的。
  2. 基于渲染器的视图可以返回字典(无需返回 Web 风格的对象)。
  3. 支持每个路由的多个视图(GET 与 POST 与 HTTP 标头检查,以及更多)。
  4. 视图响应适配器(当我们为视图返回的值与响应对象指定处理方法时)。

理解可扩展性

Pyramid 框架在设计时就考虑了可扩展性。因此,如果 Pyramid 开发人员在构建应用程序时记住特定的约束,第三方应该能够在不修改其源代码的情况下更改应用程序的行为。遵循特定约束的 Pyramid 应用程序的行为可以被覆盖或扩展,而无需进行任何修改。它被设计用于灵活地部署到多个环境(没有单例)。Pyramid 具有“Tweens”中间件支持(WSGI 中间件;但是,它在 Pyramid 本身的环境中执行)。

让我们编码

在接下来的教程中,我们将介绍使用 Pyramid 框架可以创建的最简单的程序。

让我们看下面的例子,演示如何使用 Pyramid 框架在端口号 1234 上打印“Hello”语句。

示例

输出

Pyramid Framework in Python

说明

在前三行中,我们有 import 语句。在第一行中,我们导入了 make_server 函数,该函数在我们传递给应用程序时帮助我们创建一个简单的 Web 服务器。然后,我们从 Pyramid 框架导入了 ConfigurationResponse 函数。这些函数用于详细配置、设置应用程序参数以及响应请求。

在接下来的两行中,我们定义了一个名为 helloWorld 的函数。此函数将有助于生成响应。此函数满足了负责渲染将传递回请求实体的文本的视图的要求。在本例中,该函数在被调用时,使用我们之前导入的 Response 函数。这将返回应提供给客户端的值。

在下一行中,我们使用了 if __name__ = '__main__': Python 语句,其含义是“当从命令行执行时,从这里开始”,而不是在导入此模块时。

在下一行中,我们通过调用程序顶部导入的 Configurator 函数创建的对象创建了一个名为 cnfg 的变量。在接下来的两行中,我们调用了该对象的 add_routeadd_view 方法。此方法用于定义应用程序可以使用的视图。正如我们所观察到的,我们传递了我们之前定义的 helloWorld 函数。这就是该函数被纳入视图的地方。

在最后两行中,我们通过调用 cnfg 对象的 make_wsgi_app 方法创建了 WSGI 应用程序。它利用对象属性(如我们包含的视图)来创建应用程序。然后,该应用程序被传递给 make_server 函数,以创建一个允许我们启动 Web 服务器来提供应用程序的对象。最后,我们启动了这个服务器。

结果,我们的入门级应用程序已成功创建。这是最简单、最容易配置的 Pyramid 应用程序之一,采用“命令式”配置。它之所以是命令式的,是因为在执行配置任务时,我们可以完全利用 Python 编程语言的功能。

最后,我们可以得出结论,Pyramid 框架是一个开源的 Python Web 框架,拥有庞大而活跃的社区。这个庞大的社区正在为使 Python Web 框架出名和保持相关性做出贡献。Pyramid Web 框架通过提供一套强大的功能和实用程序,简化和加速了 Web 应用程序的开发。