Zope
Original author(s) | Zope Corporation |
---|---|
Developer(s) | Zope Corporation |
Initial release | July 1999 |
Stable release | 5.8.6[1]
/ 4 October 2023 |
Available in | Python |
Type | web framework |
License | Zope Public License |
Website | zope |
Zope is a family of
Over the last few years, the Zope community has spawned several additional web frameworks with disparate aims and principles, but sharing philosophy, people, and source code. Zope 2 is still the most widespread of these frameworks, largely thanks to the Plone content management system, which runs on Zope 2. BlueBream (earlier called Zope 3) is less widespread but underlies several large sites, including Launchpad. Grok was started as a more programmer-friendly framework, "Zope 3 for cavemen", and in 2009 Pyramid gained popularity in the Zope community as a minimalistic framework based on Zope principles.
History
The Zope Corporation was formed in 1995 in Fredericksburg, Virginia under the name Digital Creations, as a joint venture with InfiNet (a joint newspaper chain venture). The company developed a classified advertisement engine for the Internet. In 1997, the company became independently owned and private. The company's software engineers are led by CTO Jim Fulton. PythonLabs, creators of Python, became part of the company in 2000 (Python founder Guido van Rossum left Zope Corp in 2003).[6]
What is now known as Zope 2 began with the merging of three separate software products – Bobo, Document Template, and BoboPOS – into the Principia application server. At the behest of its largest investor, Opticality Ventures, Principia was re-released as free software under the name Zope in 1998. Bobo, and therefore Zope, was the first Web object publishing solution.[2][3]
In November 2004, Zope 3 was released. Zope 3 is a
The existence of two incompatible Web frameworks called Zope has caused a lot of confusion. In response, in January 2010, Zope 3 was renamed "BlueBream".[7][8] "Zope" and "blue bream" are names of a kind of fish, Ballerus ballerus.
Zope Foundation
Founded | March 2006 |
---|---|
Type | nonprofit |
Focus | Open-source software |
Method | Zope Public License |
Website | foundation |
The Zope Foundation is an organization that promotes the development of the Zope platform by supporting the community that develops and maintains the relevant software components. The community includes both open source software, documentation and web infrastructure contributors, as well as business and organization consumers of the software platform. It manages the zope.org websites, an infrastructure for open source collaboration.
Zope versions
Developer(s) | Zope Corporation |
---|---|
Initial release | 1998 |
Stable release | 5.6.0[9]
/ 9 September 2022 |
Written in | Cross-platform |
Type | Web application server |
License | Zope Public License |
Website | www |
Zope 2
A Zope
Zope provides two mechanisms for
Zope 2 underlies the
system.BlueBream
Developer(s) | Zope Corporation |
---|---|
Initial release | 2004 |
Stable release | 1.0
/ January 18, 2011[10] |
Written in | Cross-platform |
Type | Web application server |
License | Zope Public License |
Website | bluebream |
BlueBream is a rewrite by the Zope developers of the Zope 2 web application server. It was created under the name "Zope 3", but the existence of two incompatible frameworks with the same name caused much confusion, and Zope 3 was renamed "BlueBream" in January 2010.[11][12] BlueBream is distributed under the terms of the Zope Public License[13] and is thus free software.
Zope 2 has proven itself as a useful framework for Web applications development, but its use revealed some shortcomings.[ are going through the same type of piece-by-piece rewriting. The first production release of the new software, Zope X3 3.0.0, was released on November 6, 2004.
History
The Zope 3 project started in February 2001 as an effort to develop a new version of Zope as an almost complete rewrite, with the goal to retain the successful features of Zope 2 while trying to fix some of its shortcomings. The goal was to create a more developer-friendly and flexible platform for programming web applications than Zope 2 is. The project began with the development of a
Technology
The goal of the project was to enable programmers to use Zope in order to expose arbitrary Python objects as model objects to the web without the need to make these objects fulfill particular behavior requirements. In Zope 2 there had been many behavior requirements to allow objects to participate in the framework, which resulted in a large amount of mixin base classes and special attributes. BlueBream uses a model/view architecture, separating the presentation code from the problem domain code. Views and models are linked together by the component architecture.
The libraries underlying BlueBream have been evolving into a collection of useful libraries for web application development rather than a single, monolithic application server. BlueBream includes separate packages for interfaces, component architecture, HTTP server, publisher, Zope Object Database (ZODB), Zope Page Templates,
The Zope 3 project pioneered the practice of
BlueBream is considered a stable framework, used on production projects worldwide, most notably Launchpad.
Zope Toolkit
Other names | ZTK |
---|---|
Developer(s) | Zope Foundation |
Initial release | June 26, 2010 |
Stable release | 1.1.6
/ May 1, 2013 |
Preview release | 2.0a1
/ May 1, 2013 |
Cross-platform | |
Type | Web framework |
License | Zope Public License |
Website | zopetoolkit |
As a result of the development of Zope 3 / BlueBream, there are now many independent Python packages used and developed as a part of BlueBream, and although many of these are usable outside of BlueBream, many are not. The Zope Toolkit (ZTK) project was started to clarify which packages were usable outside BlueBream, and to improve the re-usability of the packages. Thus the Zope Toolkit is a base for the Zope frameworks. Zope 2.12 is the first release of a web framework that builds on Zope Toolkit, and Grok and BlueBream were set to have releases based on the ZTK during 2010.
Grok
In 2006 the Grok project was started by a number of Zope 3 developers who wanted to make Zope 3 technology more agile in use and more accessible to newcomers. Grok has since then seen regular releases and its core technology (Martian, grokcore.component) is also finding uptake in other Zope 3 and Zope 2 based projects.
Zope 4
In late 2017, development began on Zope 4.[16] Zope 4 is a successor to Zope 2.13, making many changes that are not backwards compatible with Zope 2.
Zope 5
Zope 5 was released in 2020.
Zope page templates
As mentioned previously, Zope page templates are themselves XHTML documents, which means they can be viewed and edited using normal HTML editors or XHTML compliant tools (a big advantage compared to other template languages used for Web applications). Templates can also be checked for XHTML compliance so you can be fairly confident that they will automatically expand into proper XHTML.
However, these page templates are not meant to be rendered as is. Instead they are marked up with additional elements and attributes in special XML namespaces (see below). This additional information is used to describe how the page template should ultimately be processed.
Here are some basic examples. To conditionally include a particular element, like a div
element, simply add the tal:condition
attribute to the element as follows:
<div tal:condition="...">
...
</div>
To control what appears inside an element, use the tal:content
attribute like this:
<h1><span tal:content="..."/></h1>
...
Finally, to introduce or replace values of attributes use the tal:attributes
attribute as below. You can use Python to alter the href at runtime.
<a href="" tal:attributes="href python:'http://someurl.com/%s'%someobject">...</a>
This is a very cursory explanation of Zope Page Templates. The behavior of Zope Page Templates is almost completely described by a
- Template Attribute Language (TAL),
- Template Attribute Language Expression Syntax (TALES),
- Macro Expansion Template Attribute Language (METAL).
Notable software using Zope
- SchoolTool is an open source student information system that uses Zope.
- Plone is an open source content management systemthat uses Zope.
See also
- Pylons project
- Django
- web2py
- Content management (CM)
- Web content management system (WCMS)
- Naaya
- Twisted
References
- ^ "Change log — Zope 5.8.6 documentation".
- ^ a b Reuven M. Lerner. "At the Forge - Assessing Ruby on Rails". Linux Journal. Retrieved 2010-03-26.
Zope also pioneered the idea of object publishing, in which a URL describes the method that should be called on a particular object.
- ^ a b Philip J Eby (2003-12-11). "Comment on "Lisp and Productivity"". Joel on Software. Archived from the original on 2009-02-18. Retrieved 2010-03-26.
In 1997, Jim Fulton (the CTO at Zope Corp) developed a technique he called "Object Publishing", and implemented in a library called the Python Object Publisher (aka Bobo). The object publishing metaphor is found in many Python toolkits today; in other languages it's found only in crippled form, at best.
- ISBN 9780596554613. Retrieved 2010-03-27.
The use of Zope has spread so quickly that many Pythonistas have looked to it as a Python Killer Application - a system so good that it naturally pushes Python into the development spotlight.
- BYTE. Archived from the originalon 2000-03-02. Retrieved 2011-06-04.
- ^ "Guido van Rossum Leaves Zope.com - Slashdot". developers.slashdot.org.
- ^ "BlueBream documentation". Archived from the original on 2010-01-22. Retrieved 2010-01-17.
- ^ "Zope Foundation Board of Directors meeting 2010-10-14". Retrieved 2010-01-17.
- ^ "Change log". 9 September 2022. Retrieved 18 October 2022.
- ^ "bluebream 1.0". pypi.python.org. 2011-01-18. Retrieved 2020-11-04.
- ^ a b "1. Introduction — BlueBream v1.0b4 documentation". bluebream.zope.org. Archived from the original on 2010-01-22. Retrieved 2010-01-17.
- ^ "Zope.dev - zope Resources and Information".
- ^ "FAQ - General 5: What is the license of Zope 3?". Archived from the original on 2009-08-22. Retrieved 2012-08-17.
Zope 3 is licensed under Zope Public License, Version 2.1 (ZPL).
- ^ "Zope 3 wiki Component Architecture". 9 May 2008. Archived from the original on 9 May 2008.
- ^ "Zope 3 wiki SprintSchedule". Archived from the original on August 14, 2012. Retrieved August 17, 2012.
- ^ "Changelog — Zope documentation 4.0 documentation". zope.readthedocs.io.