金字塔 (pyramid) 简介

金字塔是一个普遍的,开源, Python Web 应用开发框架。其首要目标是为 Python 开发人员更容易的创建 Web 应用程序。 

框架与库 
框架,有一个非常重要的方面不同于库:库中的代码总是通过你写的代码去调用,而框架总是调用你写的代码。在最初时使用一组库创建应用程序通常比使用一个框架更容易,因为你可以有权利选择性决定放弃库中的代码,但是当你使用一个框架,你需要放弃更多的没有授权的部分代码,你写的代码需依存于框架中。然而,在实践中,使用一个能够适合你的应用需求功能的框架去创建一个应用程序往往比一个自己由折腾出来的组库来得更有实用性。

 金字塔尝试遵循这些设计和工程原则:

简单的,金字塔提供了“ 只为你吃的买单 ” 的处理方法。即使你有了金字塔的部分认识,你就可以得到结果。它不会强迫你使用任何特定的技术去开发一个应用程序,我们力求你需要理解的核心概念最小化。

简约的,金字塔仅仅提供了解决创建 Web 应用程序的基本问题: URL 映射到代码 , 模板 , 安全性 和服务的静态资产, 我们 认为这些核心内容是几乎所有的 Web 应用程序 所共同的 .

 文档化,金字塔的极简性意味着它是我们更容易维护完整和最新的文档。我们的目标是:无文档,是金字塔的一个方向(不通顺)。  

可靠性,金字塔经过谨慎的开发和详尽的测试过。凡金字塔源代码而言,我们的座右铭是:“如果没有测试,不公开(不会翻译原文:If it ain’t tested, it’s broke”)。 

开放性,正如Python的开放性一样,金字塔软件是一个自由的开源许可下发布的。 

速度,金字塔设计出提供明显快速执行常见任务,如模板和简单的响应生成。虽然“硬件很便宜”,这种方法限制会明显痛苦,当人们发现他或她负责需要管理大量机器的情况下。 

1.1金字塔的独特

     省略n字.......................................

     如何独特功能,详述如下:

 1.1.1单文件的应用程序

你可以写出一个金字塔应用程序完全运行在一个Python文件是,不同于现有的Python 微框架的应用程序,一次性原型,臭虫繁殖,非常小的应用程序,这是有益的。
这些应用程序很容易理解,因为所有有关应用程序的信息都存在一个单一地方,你可以部署,而无需了解Python发行和包装。
金字塔作为微框架没有正真地市场化,但它可以让你做几乎所有的,用非常相似的方式销售这个框架。  

 

from paste.httpserver import serve  
from pyramid.config import Configurator  
from pyramid.response import Response  
  
def hello_world(request):  
   return Response('Hello %(name)s!' % request.matchdict)  
  
if __name__ == '__main__':  
   config = Configurator()  
   config.add_route('hello', '/hello/{name}')  
   config.add_view(hello_world, route_name='hello')  
   app = config.make_wsgi_app()  
   serve(app, host='0.0.0.0')  

 

代码另存helloworld.py然后python解析器去执行它(在安装了pyramid前提下) 

 

然后通过web浏览器访问URL: http://127.0.0.1:8080/hello/world
会出现”Hello world!”字样文本响应输出.
  


停止应用程序请cmd输入ctrl+c

现在我们有基本了解一个的应用程序的样子,让我们来一块一块检查分析它。

先从导入Imports开始:
下面helloworld.py代码中使用了一组导入语句
from paste.httpserver import serve
from pyramid.config import Configurator
from pyramid.response import Response

这段第二行代码:从pyrmaid.config模块中导入Configurator类,以后经常用来这个Configurator配置类的一个实例来配置你的金字塔的应用。
像许多其他的Python Web框架,金字塔使用WSGI协议来连接应用程序和Web服务器,导入paste.httpserver服务器作为WSGI服务器来使用是为方便起见,在这个例子中,金字塔本身依赖于paster包。

 

这段代码还导入pyramid.response.Response类供以后使用。这个类的一个实例将被用来创建一个Web响应。

......................待

posted on 2012-10-19 16:44  小饼干  阅读(2670)  评论(1编辑  收藏  举报