Python Template Weblog

May 20, 2005

Introduction

— Tim @ 9:18 am

The purpose of this site to compare and contrast the various HTML templating systems available for Python. There are already many different web frameworks available, and there has been a fair bit of attention on comparing and contrasting them them over the past several months. I expect that work to overlap my own in some areas, but I want to focus specifically on the template systems themselves, and consequently on the view portion of the MVC model.

To this end, I hope to come up with some more or less non-trivial tasks, focused specifically on the presentation-layer problem domain, and try out some implementations in a bunch of different template systems. Rather than using any particular web framework, persistance model, or so on, I’ll be working up a fake-out back end and using it to feed data into the view.

I hope to focus mainly on template systems which are fairly agnostic about the web framework they are running in, although this may mean I could miss some of the template systems which are specific to certain environments or web application servers.

I’d like to eventually at least touch on every template system which is still reasonably alive (ie, has been updated in the last year or so). I’ve collected the ones I could find under the “template systems” link category in the right-hand column. So far there are seventeen of them and I fear for my sanity—the more so because the total extant documentation for all of them is probably only enough to document about three comprehensively.

One of my other motivations in writing this is to cast a little light on some of the template systems that might be missed by the more general web framework comparisons because they are not integrated into a particular framework or otherwise have not received a lot of attention.

Finally, I’m interested in finding programming idioms which may be used in various templates. That is to say, I’d like to use them in a way that is natural to them, rather than making them conform to my own ideas of what they should do. This goal is still rather vague, but with any luck I’ll be able to highlight what I mean as I come across it.

Next up: a little bit about my own background and approach, a description of some of the tasks I’d like to tackle in this comparison, and a brief description of the framework I’ll be doing my comparisons in.