Zope is an object oriented web application server written in the programming language Python. It can be almost fully managed with a web-based user interface.

A Zope website is composed of objects as opposed to files, as is usual with many other web server systems. The advantage of using objects instead of files is that objects:

  • combine behavior and data in a more natural way than flat textfiles.

  • encourage the use of standard components which take care of one particular part of what makes a web application, allowing for flexibility and good decomposition.

Zope maps URLs to objects using the containment hierarchy of such objects; methods are considered to be contained in their objects as well.

Zope comes with the Zope Object Database (ZODB), which transparently persists (Python) objects in a transactional database.

One particular innovative feature of Zope is its real world use of acquisition, a programming technique orthogonal to inheritance in object oriented programming. In acquisition, objects 'inherit' behavior from their context in a composition hierarchy, as opposed their class in a class hierarchy. This allows certain ways to structure source code that are otherwise harder to accomplish, and can encourage application decomposition. A common use is in structuring the way layout elements are used in a web page.

Zope is the base behind the Plone content management system.

External links

Zope User Groups