介绍

这是jinja2通用模板语言的文档。Jinja2是一个针对python的库,旨在实现灵活性、快速性和安全性。

如果你接触过其他基于文本的模板语言,比如smarty或django,你应该会觉得和jinja2在一起很自在。通过遵循Python的原则并添加对模板化环境有用的功能,它对设计人员和开发人员都很友好。

先决条件

jinja2与python 2.7.x和>=3.4一起工作。如果您使用的是python 3.2,那么可以使用旧版本的jinja2(2.6)作为对python 3.2的支持,因为在jinja2版本2.7中删除了该版本。支持python 2.6和3.3的最后一个版本是jinja2.10。

如果您想使用 :class:`~jinja2.PackageLoader`类,你也需要 `setuptools`_distribute 在运行时安装。

安装

您可以使用安装最新的jinja2版本 pip ::

pip install Jinja2

这将在python安装的站点包目录中安装jinja2。

安装开发版本

  1. 安装 git

  2. git clone git://github.com/pallets/jinja.git

  3. cd jinja2

  4. ln -s jinja2 /usr/lib/python2.X/site-packages

作为步骤4的替代方案,您也可以 python setup.py develop 通过安装软件包 distribute 在开发模式下。这还具有编译C扩展的优点。

MarkupSafe依赖项

从2.7版起,jinja2取决于 MarkupSafe 模块。如果通过安装jinja2 pip 它将自动为您安装。

基本的API使用

本节简要介绍了用于jinja2模板的python API。

创建和呈现模板的最基本方法是通过 Template . 但是,如果模板不是从字符串加载的,而是从文件系统或其他数据源加载的,则建议不要使用此方法:

>>> from jinja2 import Template
>>> template = Template('Hello {{ name }}!')
>>> template.render(name='John Doe')
u'Hello John Doe!'

通过创建 Template 您将返回一个新的模板对象,该对象提供一个名为 render() 当使用dict或关键字参数调用时,它会扩展模板。传递给模板的dict或keywords参数是模板的所谓“context”。

这里可以看到,jinja2在内部使用unicode,返回值是unicode字符串。因此,请确保您的应用程序确实在内部使用Unicode。