Pyramid 框架


Pyramid 是一个通用的、开源的、用 python 构建的 Web 应用程序开发框架。它允许 python 开发人员轻松创建 Web 应用程序。

Pyramid 由企业知识管理系统 KARL(乔治·索罗斯的一个项目)提供支持。

安装、启动和配置


正如所描述的,“从小处着手,完成大处,保持完成框架”,Pyramid 很像 Flask,安装和运行只需很少的努力。实际上,一旦你开始构建此应用程序,你就会发现其中一些模式与 Flask 相似。

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

  • 首先,创建一个项目目录。在这里,我们创建了一个名为 Pyramid 计划 (你可以选择任何你想要的名字)。

  • 接下来,创建一个虚拟环境,你将在其中安装所有项目特定的依赖项。在这里,我们创建了一个名为 Pyramid 环境 Pyramid 的安装位置。

  • 然后,进入目录, Pyramid 环境 并安装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 配置支持:

  • 命令式配置甚至覆盖基于装饰器的配置

  • 配置冲突检测(包括更多本地与更少本地确定)

  • 配置可扩展性(包含在多个应用程序中)

  • 灵活的身份验证和授权策略

  • 配置的编程自省(查看路由的当前状态以生成导航)

网址生成


在Pyramid 中,我们可以为路由、资源和静态资产生成 URL。使用 URL 生成 API 既简单又灵活。通过Pyramid 的各种 API 生成 URL,用户可以任意更改配置,而不必担心破坏与你的任何网页的链接。

简而言之,Pyramid 中的 URL:

  • 支持 URL 生成,以允许对不会破坏链接的应用程序进行更改。

  • 生成应用程序内部或外部的静态资源的 URL。

  • 支持路由和遍历。

Views


Pyramid 的主要工作之一是在请求到达你的应用程序时查找并调用可调用的视图。 View callables 是一些代码,可以响应应用程序中的请求而做一些有趣的事情。

当你将视图映射到你的 URL 调度或 python 代码时,可以有任何类型的调用。视图可以是函数声明或实例,它可以用作Pyramid 中的视图。

关于 Views 的一些要点如下:

  • 视图是从任何可调用对象生成的。

  • 基于渲染器的视图可以简单地返回字典(不需要返回 webby 样式对象)。

  • 支持每个路由的多个视图(GET vs. POST vs. HTTP Header 检查等)。

  • 查看响应适配器(当你想要指定应如何处理视图返回值与响应对象时)。

可扩展性


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

运行 Hello, Pyramid 程序


在安装Pyramid 框架以检查一切是否正常后,我们能想到的最简单的程序是运行一个简单的“Hello, World”或“Hello, Pyramid”程序。

下面是我在 8000 端口号上的Pyramid “Hello, Pyramid”程序:

Pyramid Program

上面的简单示例很容易运行。将其保存为 app.py(在此,我们将其命名为 pyramid_helloW.py)。

运行最简单的程序:

Running Program

接下来打开 http://localhost:8000/ 在浏览器中,你将看到 Hello, Pyramid!留言如下:

Hello Pyramid

以下是对上述代码的解释:

行号1-3

在文件的开头,我们有 import 语句。第一行导入 make_server 函数,它可以在传递给应用程序时创建一个简单的 Web 服务器。第二行和第三行从Pyramid 导入配置和响应函数。这些函数分别用于为应用程序配置详细信息和设置参数以及响应请求。

行号5-6

现在我们有一个函数定义叫做 你好世界 .实现生成响应的视图代码。满足视图要求的函数负责呈现将传递回请求实体的文本。在上述情况下,该函数在调用时会使用我们之前导入的 Response 函数。这会传回一个应该给客户端的值。

行号8

if __name__ == ‘__main__’:Python 说的是“从命令行运行时从这里开始”,而不是在导入此模块时。

行号9-11

在行号。 9,我们从我们在程序顶部导入的配置器函数创建的对象中创建一个名为 config 的变量。第 10 行和第 11 行调用了这个对象的 add_route 和 add_view 方法。此方法用于定义应用程序可以使用的视图。如我们所见,我们传递了之前定义的 hello_world 函数。这是该功能实际合并为视图的地方。

行号12-14

在这里,我们实际上是通过调用 config 对象的 make_wsgi_app 方法来创建 WSGI 应用程序的。这使用对象的属性(例如我们添加的视图)来创建应用程序。然后将此应用程序传递给我们导入的 make_server 函数,以创建一个可以启动 Web 服务器来为我们的应用程序提供服务的对象。最后一行启动此服务器。

Our 你好世界应用程序 是最简单和最简单的Pyramid 应用程序之一,被“强制”配置。这是必要的,因为我们在执行配置任务时可以使用 Python 的全部功能。

总而言之,Pyramid 是一个开源的 Python Web 框架,拥有一个庞大而活跃的社区。这个大型社区有助于使 python web 框架流行和相关。 Pyramid Web 框架通过提供一组强大的功能和工具来简化和加速 Web 应用程序的开发。