Pyramid框架


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

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

安装、启动和配置

正如所描述的,“从小处开始,大处完成,保持完成框架”,Pyramid 很像 Flask,只需很少的精力即可安装和运行。事实上,一旦您开始构建此应用程序,您就会认识到某些模式与 Flask 类似。

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

  • 首先,创建一个项目目录。在这里,我们创建了一个名为pyramidProject的目录(您可以选择任何您想要的名称)。

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

  • 然后,转到目录PyramidEnv并使用pip install Pyramid 安装Pyramid

一旦完成上述所有操作,您的目录结构将如下所示 -

目录结构

系统中安装的Pyramid版本如下 -

Pyramid版本

核心概念

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。

  • 支持路由和遍历。

意见

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

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

下面给出了有关视图的一些重要要点 -

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

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

  • 支持每个路由的多个视图(GET、POST、HTTP 标头检查等)。

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

可扩展性

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

运行 Hello, Pyramid 程序

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

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

Pyramid计划

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

运行最简单的程序: -

运行程序

接下来,在浏览器中打开http://localhost:8000/,您将看到Hello, Pyramid! 消息如下 -

你好Pyramid

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

行号 1-3

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

行号 5-6

现在我们有一个名为hello_world的函数定义。实现生成响应的视图代码。满足视图要求的函数负责呈现将传递回请求实体的文本。在上述情况下,该函数在调用时使用我们之前导入的 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 服务器来为我们的应用程序提供服务的对象。最后一行启动该服务器。

我们的hello world 应用程序是最简单、最容易的Pyramid应用程序之一,“强制”配置。这是必要的,因为当我们执行配置任务时,我们可以使用 Python 的全部功能。

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