集成¶
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
的语法相关选项在映射文件中也可用作配置值。例如,要告诉提取器模板使用 %
作为 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