Pyramid是一个用python构建的通用开源Web应用程序开发框架.它允许python开发人员轻松创建Web应用程序.
Pyramid由企业知识管理系统KARL(乔治索罗斯项目)提供支持.
安装,启动up和配置
如上所述,"开始小,完成大,保持完成框架",Pyramid就像Flask一样,安装和运行都需要很少的精力.事实上,一旦你开始构建这个应用程序,你会发现一些模式类似于Flask.
以下是创建金字塔框架环境的步骤 :
首先,创建一个项目目录.在这里,我们创建了一个名为 pyramidProject 的目录(您可以选择任何您想要的名称).
接下来,创建一个虚拟环境您将在何处安装所有项目特定的依赖项.在这里,我们创建了一个名为 pyramidEnv 的虚拟环境文件夹,其中安装了Pyramid.
然后,转到目录, pyramidEnv 并使用 pip install pyramid 安装金字塔.
一切都按照提到的完成上面,您的目录结构如下所示 :
系统中安装的金字塔版本在下面和下面给出;
核心概念
Pyramid框架基于以下核心概念 :
Zope (可扩展性,遍历,声明性安全性) : 金字塔在可扩展性,遍历概念和声明性安全性方面松散地基于Zope.
Pylons (URL dispatch,持久性,模板等的非自以为是的观点.金字塔绘制其概念的另一个领域是铁塔项目. Pylons具有路径概念,它调用金字塔框架内的URL调度,并且它们还具有持久层或模板的非固定视图.
Django (查看,文档级别) : 金字塔也得到了Django的暗示.我们采取观点的方式,路由我们的URL和文档级别是非常Django方式.
以下是金字塔框架 :
这是已知最快的Python Web框架.
它支持小型和大型项目(为什么在您的小型框架开始时重写).
它支持像microrameworks这样的单文件webapps.
它有内置会话.
它支持与Plone/类似的事件Zope.
它提供了交易管理(如果已经注意到我们之前已经使用过Zope).
配置
配置是影响应用程序操作的设置.有两种配置金字塔应用程序的方法:命令式配置和声明式配置.
金字塔配置支持 : 去;
命令式配置甚至覆盖基于装饰器的配置
配置冲突检测(包括更多本地与更少本地的确定) )
配置可扩展性(包含在多个应用中)
灵活的身份验证和授权策略
编程的构造自省(查看生成导航的路线的当前状态)
URL生成
在金字塔中,我们可以生成路由,资源和静态资产的URL.使用URL生成API非常简单灵活.通过金字塔的各种API生成网址,用户可以随意更改配置,而无需担心与您的任何网页断开链接.
简而言之,金字塔中的URL :
支持URL生成,允许更改不会破坏链接的应用.
生成位于应用程序内部或外部的静态资源的URL.
支持路由和遍历.
视图
金字塔的一个主要工作是在请求到达您的应用程序时查找并调用可调用的视图.查看callables是一些代码,可以响应应用程序中的请求而做一些有趣的事情.
当您将视图映射到URL分派或python代码时,可以有任何类型的呼叫.视图可以是函数声明或实例,它可以用作金字塔中的视图.
关于视图的一些重要观点在下面和下面给出;
从任何可调用的视图生成视图.
基于渲染器的视图可以简单地返回字典(不需要返回webby样式对象).
支持每个路由多个视图(GET vs. POST与HTTP Header检查等).
查看响应适配器(当您想指定应如何处理视图返回值与响应对象时).
可扩展性
金字塔在设计时考虑了可扩展性.因此,如果金字塔开发人员在构建应用程序时牢记某些约束,则第三方应该能够更改应用程序的行为,而无需修改其源代码.遵循某些约束的金字塔应用程序的行为可以被覆盖或扩展而无需任何修改.它专为灵活部署到多个环境而设计(No Singletons). Pyramid有"Tweens"中间件支持(WSGI中间件,但在Pyramid本身的上下文中运行).
运行Hello,金字塔程序
安装金字塔框架以检查一切是否正常工作后我们可以想到的最简单的程序是运行一个简单的"Hello,World"或"Hello,Pyramid"程序.
下面是我的金字塔"你好,金字塔"程序在8000端口号和减号;
以上简单示例易于运行.保存为app.py(在此,我们给出了名称pyramid_helloW.py).
运行最简单的程序: :
接下来,在浏览器中打开 http://localhost:8000/,你会看到你好,金字塔!消息如下 :
以下是解释对于上面的代码和减号;
行号. 1-3
在文件的头部,我们有import语句.第一行导入make_server函数,该函数在传递给应用程序时可以创建一个简单的Web服务器.第二行和第三行从金字塔导入配置和响应函数.这些函数分别用于配置应用程序的详细信息和设置参数以及响应请求.
行号. 5-6
现在我们有一个名为 hello_world 的函数定义.实现生成响应的视图代码.满足视图要求的函数负责呈现将传递回请求实体的文本.在上面的例子中,函数在被调用时使用我们之前导入的Response函数.这会传回应该提供给客户的值.
行号. 8
如果__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应用程序是最简单,最简单的金字塔应用程序之一,"命令式"配置.这是必要的,因为我们在执行配置任务时可以使用Python的全部功能.
总而言之,Pyramid是一个开源的python Web框架,具有庞大且活跃的社区.这个庞大的社区有助于使python Web框架变得流行和相关.金字塔Web框架通过提供一组强大的功能和工具来简化和加速Web应用程序开发.