Skip to main content

Zope Page Templates

Project description


Latest release Supported Python versions Documentation Status

Page Templates provide an elegant templating mechanism that achieves a clean separation of presentation and application logic while allowing for designers to work with templates in their visual editing tools (FrontPage, Dreamweaver, GoLive, etc.).

Page Templates are based on a Template Attribute Language with expressions provided by TALES. For a description of their syntax, see the reference documentation.

For detailed documentation on the usage of this package, see


5.0 (2023-02-07)

  • Add support for zope.untrustedpython on Python 3. With it, Python expressions are now protected. It is activated using the untrusted extra.

  • Add support for Python 3.11.

  • Drop support for Python 2.7, 3.5, 3.6.

4.6.0 (2021-11-04)

  • Avoid traceback reference cycle in PageTemplate._cook.

  • Add support for Python 3.9 and 3.10.

4.5.0 (2020-02-10)

  • Add support for Python 3.8.

  • Drop support for Python 3.4.

4.4.1 (2018-10-16)

  • Fix DeprecationWarnings for ComponentLookupError by importing them from zope.interface.interfaces. See issue 17.

4.4 (2018-10-05)

4.3.0 (2017-09-04)

  • Add support for Python 3.5 and 3.6.

  • Drop support for Python 2.6, 3.2 and 3.3.

  • Certain internal test support objects in the tests package were removed or modified.

  • The TraversableModuleImporter properly turns ImportError into TraversalError. Previously it was catching KeyError, which cannot be raised.

  • Reach 100% code coverage and maintain it through automated testing.

4.2.1 (2015-06-06)

  • Add support for Python 3.2.

4.2.0 (2015-06-02)

4.1.0 (2014-12-27)

  • Add support for Python 3.4.

  • Add support for testing on Travis.

4.0.4 (2013-03-15)

  • Ensure that ZopePythonExpr and PythonExpr are separate classes even when zope.untrustedpython is not available. Fixes a ZCML conflict error in

4.0.3 (2013-02-28)

  • Only allow zope.untrustedpython to be a dependency in Python 2.

  • Fix buildout to work properly.

4.0.2 (2013-02-22)

  • Migrate from to zope.untrustedpython.

  • Make zope.untrustedpython an extra dependency. Without it, python expressions are not protected, even though path expressions are still security wrapped.

  • Add support for Python 3.3.

4.0.1 (2012-01-23)

  • LP#732972: PageTemplateTracebackSupplement no longer passes check_macro_expansion=False to old templates which do not accept this argument.

4.0.0 (2012-12-13)

  • Replace deprecated zope.interface.classProvides usage with equivalent zope.interface.provider decorator.

  • Replace deprecated zope.interface.implements usage with equivalent zope.interface.implementer decorator.

  • Drop support for Python 2.4 and 2.5.

  • PageTemplate.pt_render() has a new argument, check_macro_expansion, defaulting to True.

  • PageTemplateTracebackSupplement passes check_macro_expansion=False, to avoid LP#732972.

3.6.3 (2011-09-21)

  • Fix test assertions to be compatible with zope.tal 3.6.

3.6.2 (2011-09-21)

  • Change interface for engine and program such that the return type of the cook method is a tuple (program, macros). This follows the interface for the TAL parser’s getCode method.

    Fixes a legacy compatibility issue where code would expect an _v_macros volatile attribute which was missing.

3.6.1 (2011-08-23)

  • Fix issue with missing default value for strictinsert.

3.6.0 (2011-08-20)

  • Replace StringIO stream class with a faster list-based implementation.

  • Abstract out the template engine and program interfaces and allow implementation replacement via a utility registration.

  • Remove ancient copyright from test files (LP: #607228)

3.5.2 (2010-07-08)

  • Fix PTRuntimeError exception messages to be consistent across Python versions, and compatibile with the output under Python 2.4. (More readable than the previous output under Python 2.6 as well.)

3.5.1 (2010-04-30)

  • Remove use of zope.testing.doctestunit in favor of stdlib’s doctest.

  • Add dependency on “ [untrustedpython]” because the engine module uses it.

3.5.0 (2009-05-25)

  • Add test coverage reporting support.

  • Move ‘engine’ module and related test scaffolding here from package.

3.4.2 (2009-03-17)

  • Remove old zpkg-related DEPENDENCIES.cfg file.

  • Change package’s mailing list address to zope-dev at, as zope3-dev at is now retired.

  • Change cheeseshop to pypi in the packages’ homepage url.

3.4.1 (2009-01-27)

  • Fix test due to recent changes in zope.tal.

3.4.0 (2007-10-02)

  • Initial release independent of the Zope 3 tree.

3.2.0 (2006-01-05)

  • Corresponds to the version of the zope.pagetemplate package shipped as part of the Zope 3.2.0 release.

  • ZPTPage macro expansion: changed label text to match the corresponding label in Zope 2 and activated the name spaces for macro expansion in ‘read’. See

  • Coding style cleanups.

3.1.0 (2005-10-03)

  • Corresponds to the version of the zope.pagetemplate package shipped as part of the Zope 3.1.0 release.

  • Fixed apidoc and Cookie, which were using wrong descriptor class (changed to ‘property’). See

  • Documentation / style / testing cleanups.

3.0.0 (2004-11-07)

  • Corresponds to the version of the zope.pagetemplate package shipped as part of the Zope X3.0.0 release.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zope.pagetemplate-5.0.tar.gz (41.9 kB view hashes)

Uploaded source

Built Distribution

zope.pagetemplate-5.0-py3-none-any.whl (45.0 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page