Pyramid框架

Pyramid框架

Pyramid是一个通用的、开源的、用python构建的web应用开发框架。它允许Python开发人员轻松地创建网络应用。

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

安装、启动和配置

正如描述的那样,”从小做起,从大做起,保持完成的框架”,Pyramid很像Flask,安装和运行只需要很少的努力。事实上,一旦你开始构建这个应用程序,你会认识到一些模式与Flask类似。

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

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

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

  • 然后,进入 pyramidEnv 目录,用 pip安装pyramid

一旦完成上述所有工作,你的目录结构将如下图所示

Pyramid框架

而系统中安装的pyramid版本如下 –

Pyramid框架

核心概念

Pyramid框架是基于以下的核心概念

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

  • Pylons (URL调度、持久化的非观点、模板等)–Pyramid的另一个领域是Pylons项目,它的概念来自于此。Pylons有路由的概念,在Pyramid框架内调用URL调度,他们也有持久化层或模板的非意见式观点。

  • Django (视图,文档水平)–Pyramid也从Django得到了暗示。我们获取视图的方式,路由我们的URL和文档的水平是非常Django的方式。

以下是Pyramid框架的特点-

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

  • 它支持小型和大型项目(当你的小框架发展到一定程度时,为什么要重写)。

  • 它支持像微框架一样的单文件webapps。

  • 它有内置的会话。

  • 它支持类似于Plone/Zope的事件。

  • 它提供事务管理(如果已经注意到我们以前使用过Zope)。

配置

配置是影响一个应用程序运行的设置。有两种方法来配置Pyramid应用程序:命令式配置和声明式配置。

Pyramid配置支持 –

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

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

  • 配置可扩展性(包括来自多个应用程序的配置)

  • 灵活的认证和授权策略

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

URL的生成

在Pyramid中,我们可以为路由、资源和静态资产生成URL。使用URL生成API的工作是很容易和灵活的。通过pyramid的各种API生成URL,用户可以任意改变配置,而不用太担心会破坏与你的任何网页的链接。

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

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

  • 生成静态资源的URL,这些静态资源可以在应用程序内部或外部。

  • 支持路由和遍历。

观点

Pyramid的主要工作之一是当一个请求到达你的应用程序时,找到并调用一个可调用视图。视图可调用程序是一些代码位,它们在响应你的应用程序的请求时做一些有趣的事情。

当你把你的视图映射到你的URL调度或python代码上时,可以有任何形式的调用。视图可以是一个函数声明或一个实例,它可以作为Pyramid中的一个视图。

以下是关于观点的一些要点 −

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

  • 基于Renderer的视图可以简单地返回字典(不需要返回webby风格的对象)。

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

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

可扩展性

Pyramid的设计考虑到了可扩展性。因此,如果一个Pyramid的开发者在构建一个应用程序时牢记某些约束,第三方应该能够改变该应用程序的行为而不需要修改其源代码。遵守某些约束条件的Pyramid应用程序的行为可以被重写或扩展,而不需要任何修改。它是为灵活部署到多个环境而设计的(没有单子)。Pyramid有 “Tweens “中间件支持(WSGI中间件,但在Pyramid本身的背景下运行)。

运行一个Hello, Pyramid程序

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

下面是我的Pyramid “Hello, Pyramid “程序,端口号为8000–。

Pyramid框架

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

运行最简单的程序。-

Pyramid框架

接下来,在浏览器中打开 http://localhost:8000/ ,你会看到Hello, Pyramid!信息,如下所示 –

Pyramid框架

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

第1-3行

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

第5-6行

现在我们有一个名为 hello_world 的函数定义 实现生成响应的视图代码。一个满足视图要求的函数负责渲染将传回给请求实体的文本。在上述案例中,该函数在被调用时,使用了我们之前导入的Response函数。这就传回了一个应该给客户端的值。

第8行

如果 name == ‘main‘。Python 在说:”从命令行运行时从这里开始”,而不是当这个模块被导入时。

第9-11行

在第 9 行中,我们从导入的配置器函数创建的对象中创建了一个名为 config 的变量。第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网络框架,拥有一个庞大而活跃的社区。这个庞大的社区为使Python网络框架流行起来并具有相关性做出了贡献。Pyramid网络框架通过提供一系列强大的功能和工具来简化和加速网络应用程序开发。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册