集成

Flask

由 Pallets 维护的 Flask Web 应用程序框架默认使用 Jinja 模板。Flask 会为您设置一个 Jinja 环境和模板加载器,并提供函数以便从视图函数轻松呈现模板。

Django

Django 支持将 Jinja 用作其模板引擎,请参阅 https://docs.django.ac.cn/en/stable/topics/templates/#support-for-template-engines

Babel

Jinja 提供了通过 Babel 提取器入口点(称为 jinja2.ext.babel_extract)从模板中提取 gettext 消息的功能。此支持作为 i18n 扩展 扩展的一部分实现。

gettext 消息从 trans 标记和代码表达式中提取。

要从模板中提取 gettext 消息,该项目需要在其 Babel 提取方法 映射文件 中有一个 Jinja 部分。

[jinja2: **/templates/**.html]
encoding = utf-8

Environment 的语法相关选项在映射文件中也可用作配置值。例如,要告诉提取器模板使用 % 作为 line_statement_prefix,可以使用此代码

[jinja2: **/templates/**.html]
encoding = utf-8
line_statement_prefix = %

扩展 也可以通过将逗号分隔的导入路径列表作为 extensions 值传递来定义。i18n 扩展会自动添加。

默认情况下会忽略模板语法错误。假设测试会捕获模板中的语法错误。如果您不想忽略错误,请将 silent = false 添加到设置中。

Pylons

将 Jinja 集成到 Pylons 应用程序中非常容易。

模板引擎在 config/environment.py 中进行配置。Jinja 的配置类似于以下内容

from jinja2 import Environment, PackageLoader
config['pylons.app_globals'].jinja_env = Environment(
    loader=PackageLoader('yourapplication', 'templates')
)

之后,你可以使用 pylons.templating 模块中的 render_jinja 函数来渲染 Jinja 模板。

此外,最好将 Pylons c 对象设置为严格模式。默认情况下,c 对象上缺少的属性的属性访问返回一个空字符串,而不是一个未定义的对象。要更改此设置,请将以下内容添加到 config/environment.py

config['pylons.strict_c'] = True