Skip to main content

A simple and powerful template engine

Project description

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)

Project details


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