1.1. Overview
Zope 2 is a free and open-source, object-oriented web application
server written in the Python programming language. The term ZOPE is
an acronym for “Z Object Publishing Environment” (the Z doesn’t
really mean anything in particular). However, nowadays ZOPE is
simply written as Zope. It has three distinct audiences.
- Site Managers
- Individuals who use of Zope’s “out of the box” features to build
websites. This audience is interested in making use of Zope’s
existing array of features to create content management solutions.
They will likely make heavy use of “through the web” scripting
using DTML, Page Templates, and Python Scripts as well as (of
course) HTML and XML. They are generally less concerned about code
reuse than the speed with which they can create a custom
application or website.
- Developers
- Individuals who wish to extend Zope to create highly customized
solutions. This audience is likely interested in creating highly
reusable custom code that makes Zope do something new and
interesting. They will likely make heavy use of “through the
file-system” style development.
- Administrators
- Individuals responsible for keeping a Zope site running and
performing installations and upgrades.
This guide is intended to document Zope for the second audience,
Developers, as defined above. If you fit more into the “user”
audience defined above, you’ll probably want to start by reading The
Zope Book .
Throughout this guide, it is assumed that you know how to program in
the Python programming language. Most of the examples in this guide
will be in Python. There are a number of great resources and books
for learning Python; the best online resource is the python.org web
site and many books can be found on the
shelves of your local bookstore.
1.2. Organization of the book
This book describes Zope’s services to the developer from a hands on,
example-oriented standpoint. This book is not a complete reference
to the Zope API, but rather a practical guide to applying Zope’s
services to develop and deploy your own web applications. This book
covers the following topics:
- Getting Started
- This chapter provides a brief overview of installation and getting
started with application development.
- Components and Interfaces
- Zope use a component-centric development model. This chapter
describes the component model in Zope and how Zope components are
described through interfaces.
- Object Publishing
- Developing applications for Zope involves more than just creating a
component, that component must be publishable on the web. This
chapter describes publication, and how your components need to be
designed to be published.
- Zope Products
- New Zope components are distributed and installed in packages
called “Products”. This chapter explains Products in detail.
- Persistent Components
- Zope provides a built-in, transparent Python object database called
ZODB. This chapter describes how to create persistent components,
and how they work in conjunction with the ZODB.
- Acquisition
- Zope relies heavily on a dynamic technique called acquisition. This
chapter explores acquisition thoroughly.
- Security
- When your component is used by many different people through the
web, security becomes a big concern. This chapter describes Zope’s
security API and how you can use it to make security assertions
about your object.
- Debugging and Testing
- Zope has built in debugging and testing support. This chapter
describes these facilities and how you can debug and test your
components.