Z Object Publishing Environment

Search | Download | Documentation | Resources | Development




Join Zope.org
Log in

Developer Home
Get Involved!
The Fishbowl

 Zope Exits

Zope Newbies
Zope Labs

Zope.org is sponsored by Digital Creations

PythonMethods Table of Contents Last edited on Jan 21, 2001 12:50 am

PythonMethods Proposal

Note - this document is for historical purposes only, please do not make changes to it. This proposal has evolved into the VisionStatement - please contribute to that document instead.


As Zope developers build increasingly complex applications, they find that DTML is a poor way to implement non-trivial application logic. DTML was never really intended for complex logic, but lack of an alternate way to express through-the-web editable logic has caused the "source" of many sites to become ugly and difficult to maintain as site developers push the envelope of DTML.

Proposed Solution

PythonMethods provides objects that can encapsulate more complex logic expressed in Python while retaining the through-the-web benefits that people like about DTMLMethodsx. There is already a prototype implementation of PythonMethods in fairly wide use. We propose to resolve the outstanding issues and make PythonMethods available as a standard object type in the Zope platform.

Builtin PythonMethods support will give developers "out of the box" the ability to better manage the complexity of their applications by putting significant logic into PythonMethods and leaving presentation issues to DTML. The builtin PythonMethodx objects:

  • Will allow logic to be written in a language suitable for logic (Python)

  • Will be editable via the Web (minimally) and probably by other protocols of the sort supported by DTML (FTP, WebDAVx, etc).

  • Will be tightly integrated with the Zope security machinery. Because they will be editable via the web, they will enforce security restrictions very similar to those enforced in DTML. They will not allow access to arbitrary modules or system resources.

  • Will provide synchronized distribution of logic for free when used with ZEO.

Risk Factors

  • There is an existing PythonMethods prototype that is in fairly wide use. We should assess backward compatibility issues as a part of this project.


This project will provide an implementation of PythonMethodx objects to be included in the Zope core and associated documentation.


This project is expected to produce:

  • A stable implementation of PythonMethodx objects to be included in a future release of Zope

  • Zope help system pages for each screen in the user interfaces of the objects in the product

  • API documentation for inclusion in the help system covering the public interfaces of PythonMethodx objects

  • Documentation suitable for inclusion as a section of the Zope Content Manager's Guide covering the use of PythonMethods

View source OriginalProposal
Advanced Actions / History
Visitor: Anonymous User
Jump to:
... by pagename prefix or search term.
For a plain search:
Privacy policy       Printable Page       Feedback about Zope.org

served by app1