1793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# -*- coding: utf-8 -*- 2793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler""" 3793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler jinja2 4793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler ~~~~~~ 5793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 6793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler Jinja2 is a template engine written in pure Python. It provides a 7793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler Django inspired non-XML syntax but supports inline expressions and 8793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler an optional sandboxed environment. 9793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 10793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler Nutshell 11793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler -------- 12793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 13793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler Here a small example of a Jinja2 template:: 14793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 15793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler {% extends 'base.html' %} 16793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler {% block title %}Memberlist{% endblock %} 17793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler {% block content %} 18793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler <ul> 19793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler {% for user in users %} 20793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler <li><a href="{{ user.url }}">{{ user.username }}</a></li> 21793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler {% endfor %} 22793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler </ul> 23793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler {% endblock %} 24793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 25793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 26793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler :copyright: (c) 2010 by the Jinja Team. 27793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler :license: BSD, see LICENSE for more details. 28793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler""" 29793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler__docformat__ = 'restructuredtext en' 30793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler__version__ = '2.7.1' 31793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 32793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# high level interface 33793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.environment import Environment, Template 34793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 35793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# loaders 36793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.loaders import BaseLoader, FileSystemLoader, PackageLoader, \ 37793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler DictLoader, FunctionLoader, PrefixLoader, ChoiceLoader, \ 38793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler ModuleLoader 39793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 40793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# bytecode caches 41793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.bccache import BytecodeCache, FileSystemBytecodeCache, \ 42793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler MemcachedBytecodeCache 43793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 44793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# undefined types 45793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.runtime import Undefined, DebugUndefined, StrictUndefined 46793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 47793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# exceptions 48793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.exceptions import TemplateError, UndefinedError, \ 49793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler TemplateNotFound, TemplatesNotFound, TemplateSyntaxError, \ 50793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler TemplateAssertionError 51793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 52793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# decorators and public utilities 53793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.filters import environmentfilter, contextfilter, \ 54793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler evalcontextfilter 55793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslerfrom jinja2.utils import Markup, escape, clear_caches, \ 56793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler environmentfunction, evalcontextfunction, contextfunction, \ 57793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler is_undefined 58793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 59793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler__all__ = [ 60793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 'Environment', 'Template', 'BaseLoader', 'FileSystemLoader', 61793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 'PackageLoader', 'DictLoader', 'FunctionLoader', 'PrefixLoader', 62793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 'ChoiceLoader', 'BytecodeCache', 'FileSystemBytecodeCache', 63793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 'MemcachedBytecodeCache', 'Undefined', 'DebugUndefined', 64793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 'StrictUndefined', 'TemplateError', 'UndefinedError', 'TemplateNotFound', 65793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 'TemplatesNotFound', 'TemplateSyntaxError', 'TemplateAssertionError', 66793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 'ModuleLoader', 'environmentfilter', 'contextfilter', 'Markup', 'escape', 67793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 'environmentfunction', 'contextfunction', 'clear_caches', 'is_undefined', 68793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 'evalcontextfilter', 'evalcontextfunction' 69793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler] 70