Python does not come with tools to generate HTML. If you want an advanced framework for structured HTML generation, I recommend Robin Friedrich’s HTMLGen 2.2 (available at http://starship.python.net/crew/friedrich/HTMLgen/html/main.html), but I do not cover the package in this book. To generate XHTML, you can also use the approaches covered in Section 23.4 in Chapter 23.
If your favorite approach is to embed Python code within HTML in the manner made popular by JSP, ASP, and PHP, one possibility is to use Python Server Pages (PSP) as supported by Webware, mentioned in Chapter 20. Another package, focused more specifically on the embedding approach, is Spyce (available at http://spyce.sf.net/). For all but the simplest problems, development and maintenance are eased by separating logic and presentation issues through templating, covered in the next section. Both Webware and Spyce optionally support templating in lieu of embedding.
generate HTML, the best approach is often templating. With
templating, you start with a
template, which is
a text string (often read from a file, database, etc.) that is valid
HTML, but includes markers, also known as placeholders, where
dynamically generated text must be inserted. Your program generates
the needed text and substitutes it into the template. In the simplest
case, you can use markers of the form
Bind the dynamically generated text as the value for key
in some dictionary