Zope 3 丛书/介绍
Zope 3 由多个用 Python 编程语言 编写的框架和库组成,可以单独使用也可以作为一个整体使用。这些框架和库可以组合在一起构建任何类型的 Web 应用程序。通常,Zope 3 应用程序使用名为 Buildout 的基于 Python 的构建系统开发。Zope 3 基于组件架构构建,以将表示代码与问题域代码分离,并创建可重用组件(zope.component)。
Zope 3 包含一个对象发布器(zope.publisher)、Web 服务器(zope.server)、事务对象数据库(ZODB)、用于注册组件的 XML 配置语言(zope.configuration)、带有可插拔安全策略的灵活安全架构(zope.security)、单元和功能测试框架(zope.testing、zope.testbrowser)、符合 XHTML 的模板语言(zope.pagetemplate)、模式引擎和自动表单生成机制(zope.schema、z3c.form)以及许多其他核心和第三方包。
最初,ZOPE 这个词被用作 Z Object Publishing Environment 的首字母缩写(Z 并没有什么特别的含义)。然而,现在ZOPE 通常简写为Zope。
Zope 3 是一款获得 ZPL(类似 BSD,与 GPL 兼容的许可证)许可的免费/开源软件。它由 Zope 社区在 Jim Fulton 的领导下开发。下一节将介绍简史。
本书的主要目标是创建一本关于 Zope 3 的免费在线书籍。本书将涵盖如何使用 Zope 3 组件开发 Web 应用程序。欢迎您提出建议和编辑。
本书并非要涵盖如何独立使用 Zope 3 包或与其他 Python 应用程序/框架一起使用。相反,本书重点介绍使用 Zope 3 包开发 Web 应用程序。更具体地说,本书不会涵盖在 Zope 2、Plone、Grok 或任何纯 Python 应用程序/框架中使用 Zope 3 技术。WSGI 目前也不是本书的重点。本书不会涵盖使用 zopeproject 引导应用程序(这很简单,请查看 zopeproject 的 PyPI 页面)。本书使用 Buildout 来设置用于构建应用程序的隔离开发环境。Setuptools 和 vitualenv 也会被涵盖。
本书的目标读者是希望开发 Web 应用程序的 Python 程序员。但是,本书并不要求您熟悉任何其他 Web 框架。
本书将需要您具备 Python 编程语言的先验知识,并且至少要接触过 HTML、CSS 和 JavaScript 的基础知识。
Zope 的故事起源于 1996 年,当时 Jim Fulton(Zope Corporation 的首席技术官)被选中教授一门关于通用网关接口 (CGI) 编程的课程,尽管他对此了解不多。CGI 编程是一种常用的 Web 开发模式,允许开发人员构建动态网站。在去上课的路上,Jim 研究了所有关于 CGI 的现有文档。在回程途中,Jim 思考了他不喜欢传统基于 CGI 的编程环境的哪些方面。从这些最初的思考开始,Zope 的核心在从 CGI 课程回来的航班上写成。
Zope Corporation(当时称为 Digital Creations)随后发布了三个开源软件包来支持 Web 发布:Bobo、Document Template 和 BoboPOS。这些软件包是用一种名为 Python 的语言编写的,分别提供了 Web 发布功能、文本模板和对象数据库。Digital Creations 开发了一个基于他们三个开源组件的商业应用程序服务器。该产品被称为 Principia。1998 年 11 月,投资者 Hadar Pedhazur 说服 Digital Creations 开源 Principia。这些软件包演变成了现在 Zope 2 的核心组件。
2001 年,Zope 社区开始为 Zope 开发组件架构,但经过几年后,他们最终获得了更多东西:Zope 3。虽然 Zope 2 功能强大且流行,但 Zope 3 旨在将 Web 应用程序开发提升到一个新的水平。本书讲述的就是 Zope 3,它并不是 Zope 2 的新版本。
最近,在 2007 年,Zope 社区创建了另一个基于 Zope 3 的框架,称为 Grok。现在的 Zope 2 也被广泛使用。
本书分为多个章节。下面总结了每个章节的内容。
本章将介绍 Zope 3,并概述本书的范围,然后简要介绍 Zope 3 的历史。之后将讨论本书的组织。最后将以一个致谢部分结束。
本章将从 Python 和 Zope 3 的安装细节开始,然后介绍Buildout,这是我们用来设置隔离 Python 工作环境的构建系统,以及它的配置。之后,它将探讨使用 Buildout 设置开发沙盒。接下来将开发一个简单的应用程序,并以一个Hello world 页面结束。在应用程序开发过程中,我们将简要了解如何使用 ZMI(Zope 管理界面)。本章还将简要概述重要软件包以及安装其他软件包。
本章将介绍接口的概念。
如果没有 Zope 3,本书就不可能实现。为此,作者要感谢所有 Zope 3 的开发者。感谢维基教科书提供这个书籍空间。感谢本书的所有编辑。