Using python on the web

Tres Seaver tseaver at
Fri Apr 21 20:21:52 EDT 2000

In article <8dq9lj$pjg$2 at>,
Martijn Faassen <m.faassen at> wrote:
>Brent Fulgham <brent.fulgham at> wrote:
>> A couple of questions:
>>> We build medium-busy, CGI-intensive sites in Python. We were briefly
>>> quite excited about Zope, but once we realized it locked us into Yet
>>> Another Programming Language, we lost interest. DHTML is particularly
>>> problematic,
>> 1.  I'm not familiar with Zope.  Is DHTML specific to Zope?  It seems
>> to be proudly advertised on a lot of "webware" brochures I see these
>> days.
>Acronym mixup. DHTML (Dynamic HTML) and DTML (Document Template Markup Language)
>have little in common besides that they both are used with HTML. DHTML is
>client side (in the browser), DTML server side (in Zope). DHTML is to do
>fancy graphics effects, DTML is a reporting language that talks to Zope
>(read Python) objects and usually generates HTML.

The closest cognate I know of to DTML in the non-Zope world is "server-side
includes," and their siblings.  It is not a coincidence that Zope supports
three distinct DTML syntaxes:

  * One based on Python "%"-substitution (the oldest, I think; almost nobody
	uses this now);

  * One using the same '<!--#...-->' style of syntax as SSI: this is
	comfortable for developers used to SSI, but doesn't play nice with
	design tools;

  * The now-dominant "pseudo-XML" style ('<dtml-var...>'), specifically
	designed to be teachable to DreamWeaver, et al.

DTML is a "document template" language, logically equivalent to building
a document via Python string substituion, but with conditional and iterative
processing constructs added in.  It is *not* adequate for doing "real"
programming, although many early Zope apps used it so, because it was
the only way to do logic "through-the-web."


Tres Seaver        tseaver at
Digital Creations

More information about the Python-list mailing list