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 的開發者。感謝華夏公益教科書提供這個書籍空間。感謝本書的所有編輯。