Jinja Template Engine

armin.ronacher at active-4.com armin.ronacher at active-4.com
Wed Feb 22 06:12:30 CET 2006


=====
Jinja
=====

Jinja is a small but very fast und easy to use stand-alone template
engine
written in pure python.

Since version 0.6 it uses a new parser that increases parsing
performance
a lot by caching the nodelists on the harddisk if wanted.

It includes multiple template inheritance and other features like
simple
value escaping...


Template Syntax
===============

This is a small example template in which you can see, how jinja's
syntax
looks like:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
        <title>My Webpage</title>
    </head
    <body>
        <ul id="navigation">
        {% for item in navigation %}
            <li><a href="{{ item.href }}">{{ item.caption|escapexml
}}</a></li>
        {% endfor %}
        </ul>

        <h1>My Webpage</h1>
        {{ variable }}
    </body>
    </html>

Usage
=====

Here a small example::

    from jinja import Template, Context, FileSystemLoader

    t = Template('mytemplate',
FileSystemLoader('/path/to/the/templates'))
    c = Context({
        'navigation' [
            {'href': '#', 'caption': 'Index'},
            {'href': '#', 'caption': 'Spam'}
        ],
        'variable': 'hello world'
    })
    print t.render(c)

Download
========
You can fetch the current version of Jinja (0.6) from the cheeseshop:
http://cheeseshop.python.org/pypi/Jinja



More information about the Python-announce-list mailing list