SearchWiki:
  4 User(s) Active on Site
  232 Wiki Pages

Most Recently Modified

Meeting Schedules

Club Resources (edit)

How This Wiki Works

Meeting space complements of:
Computer books
            and technical books at discount prices
Check them out; they are a great source of technical books at very good prices!

If you have shopped at Nerdbooks.com, help them out by reviewing them at ResellerRatings.com. You will need your invoice number to prove you are a real customer, and not just ballot stuffing.
Recent Changes Printable View Page History Edit Page
Content Last Modified on March 26, 2006, at 12:50 AM CST

A Collection of Usage Notes about the Zope 3 Web Framework


How-To's:

  • Connect a file, directory or directory tree to the underlying filesystem.
  • Make use of the ZCatalog? component, for indexing other components.
  • Install SQLObject and sqlos together.

On the Zope website, there is extensive developer documentation on what Zope 3 exactly is. Highly recommended reading.

One item to note is that any part of Zope that falls outside of the "zope.app" package is usable outside of the Zope application server, i.e. in non-Zope programs. Such packages are minimal interdependencies, although most depend on "zope.interface".

Remember that Zope "packages" are not the same as Zope "applications". A package is a bundle of functionality, typically a set of components and represents building blocks. A Zope "application" is a set of configuration files that bring together a specific collection of components in order to produce some specific complex functionality.


Sources of Information on Zope 3

Zope 3 provides a powerful, dynamically constructed tree of documentation about the APIs in the specific installation. It is accessible from the [Help] button in the Zope Management Interface (ZMI) or the URL "/++apidoc++" of your site.


Developing with Zope 3

Developing with Zope 3 means writing components in Python. It is much more programmer-oriented than Zope 2. The steps toward creating such a component are:

  1. Define the interface(s) by which your component will export its functionality.
  2. Implement unit tests against those interface(s).
  3. Implement the component internals.
  4. Produce configuration information.
  5. Implement functional tests for your component.
  6. Produce usage documentation.

Defining your Interface(s)

Our code will be placed at $HOME/myzope/lib/python/boom

First create a file interfaces.py where we will keep our interfaces. Later we will implement these interfaces one by one, with strong support of unit testing.

Implementing Unit Tests against Your Interface(s)

Implement the Internals of your Component

Produce Configuration Information

Implementing Functional Tests for Your Component

Producing Usage Documentation


Zope 3 Conceptual Blocks

  • Pluggable Authentication Utility (PAU) (docs: zope/app/authentication/README.txt)
    • Credentials Plugins: Basic HTTP Auth, Session
    • Authenticator Plugins: Principal Folder, Group Folder
  • Utilities
    • Menus (and sub-menus)
    • Error Reporting
    • FSSync
    • Authentication
  • Site Managers (local and global)
    • Registry of adapters and utilities
  • Adapters
    • Views
    • Skins, Layers
  • Integer-ID Facility
  • Catalog and Index
  • Vocabularies (small collections) and Sources (large collections)
  • Generic User Preferences system
  • ZCML
  • Traversal Adapters
    • ++debug++
  • HTTP Request Recorder

To Be Discussed...

  • persistence
  • security
  • transactions
  • full-text indexing
  • XML support
  • content negotiation
  • caching
  • database connectivity
  • sessions
  • search
  • directory
  • membership
  • reviewing
  • syndication
  1. How do I give my components a management interface? Do I need to?
  2. ZMI actions
  3. ZMI views
Recent Changes Printable View Page History Edit Page