作者简介

欢迎来到“ Pyramid Web框架”。在这篇导言中,我将描述这本书的读者,我将描述这本书的内容,我将提供关于 Pyramid 我要感谢一些重要的人。

我希望你喜欢这本书和软件IT文档。我写得都很好。

观众

本书主要针对具有以下特点的读者:

  • 至少适量 Python 经验。
  • 熟悉Web协议,如HTTP和CGI。

如果你适合这两个类别,你就是这本书的直接目标读者。但不要担心,即使您没有使用Python或Web的经验,这两者都很容易“即时”得到。

Python是一个 杰出的 编写应用程序的语言;在Python中变得高效几乎是令人难以置信的简单。如果你已经有了另一种语言的经验,比如Java、Visual Basic、Perl、Ruby,甚至是C/C++,那么学习Python将是一个很快的事情,它只会花费你几天的时间来完成。如果你没有以前的编程经验,它会稍微困难一点,而且会花费更长的时间,但是你很难找到更好的“第一语言”。

在本书中的不同地方都假定对Web技术的熟悉程度。例如,本书没有试图定义常见的与Web相关的概念,如“url”或“query string”。同样,本书也用HTTP协议描述了各种交互,但没有详细描述HTTP协议的工作方式。就像任何一个好的Web框架一样, Pyramid 保护您不必了解Web协议和低级数据结构的大部分详细信息。因此,在阅读本书时,即使您还没有深入了解Web技术,通常也可以避免被“阻塞”。

图书内容

这本书分为四个主要部分:

教程

每个教程构建一个示例应用程序或使用示例实现一组概念;然后根据示例描述应用程序或概念。如果您想在导游的带领下参观 Pyramid .

叙述性文件

这是描述 Pyramid 以叙事形式的概念,主要以对话的语调书写。每个叙述性文档章节都描述了 Pyramid 概念。如果阅读顺序不对,或者在开发应用程序时只需要一个特定主题的提示,那么应该能够从叙述章节中获得有用的信息。

API文档

各公开API的综合参考资料 Pyramid . API文档按模块名的字母顺序组织。

p* 脚本文档

p* 脚本包含在 Pyramid .

Genesis repoze.bfg

2010年底前, Pyramid 被称为 repoze.bfg .

我写 repoze.bfg 在编写应用程序多年后,使用 Zope . Zope为我提供了很多好处:直到近十年成功地使用它创建应用程序之后,我才决定编写一个不同的Web框架。虽然 repoze.bfg 从各种Web框架中汲取灵感,它的核心设计更多地归功于Zope。

以前存在的“品牌”回购 repoze.bfg 创建。作为回购品牌的一部分,最早开发的软件包之一是名为 repoze.zope2 . 这是一个允许Zope2应用程序在 WSGI 无需修改的服务器。Zope2当时没有合理的wsgi支持。

在发展的过程中 repoze.zope2 包中,我发现复制Zope2“发布者”——将URL映射到代码的机器——既费时又费心。Zope2已经发展了很多年,模拟所有边缘案例是非常困难的。我完成了 repoze.zope2 它很好地模拟了正常的Zope2发布者。但在它的开发过程中,很明显Zope2已经开始超越我对复杂性的容忍,我开始四处寻找更简单的选择。

我考虑过使用Zope3应用服务器机制,但结果发现它比它要替换的Zope2机制更加间接,这并没有实现简化的目标。我也考虑过使用django和pylons,但是这两个框架都没有在遍历、上下文声明性安全或应用程序可扩展性的轴上提供很多东西;这些是我作为Zope开发人员已经习惯的特性。

我认为,从长远来看,创建一个更简单的框架,保留我在开发Zope应用程序时已经习惯的功能,比继续使用任何Zope发布者或生活在不同框架的局限性和不熟悉性中更为合理。结果就是现在 Pyramid .

Genesis Pyramid

什么是 repoze.bfg 已成为 Pyramid 由于在 RepozePylons 整个2010年的社区。通过合并技术,我们能够减少重复的工作,并充分利用彼此的技术。

谢谢

这本书献给我的祖母,她给了我第一台打字机(一台皇家打字机),我的母亲给我买了第一台电脑(一台VIC-20)。

感谢以下人员提供专业知识、资源和软件。没有这些人的帮助,这本书和它的细节软件都不可能存在:保罗·埃弗里特,特雷斯·西弗,安德鲁·索耶斯,马耳他·博奇,卡洛斯·德·拉瓜迪亚,克里斯·罗西,莎恩·哈撒韦,丹尼尔·霍尔特,威瑟特·阿克曼,乔治·布兰德,布莱斯·拉夫拉姆,本·班格特,凯西·邓肯,胡格斯·拉夫拉姆,迈克·奥尔,约翰·希普曼,克里斯·比尔比。Patricio Paez、Simon Oram、Nat Hardwick、Ian Bicking、Jim Fulton、Michael Merickel、开放社会研究所的Tom Moroz和环境健康科学的Todd Koym。

多亏了吉多·范·罗森和蒂姆·彼得斯的 Python 。

特别感谢特里西娅能容忍我。