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 Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page