整合

巴别塔

Jinja支持通过 Babel 调用了提取程序入口点 jinja2.ext.babel_extract . 支持作为 i18n扩展 延伸。

Gettext消息都是从这两者中提取的 trans 标记和代码表达式。

为了从模板中提取gettext消息,项目需要在其Babel提取方法中使用Jinja部分 mapping file

[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')
)

之后,您可以使用 render_jinja 函数来自 pylons.templating 模块。

另外,设置塔架也是个好主意 c 对象设置为严格模式。默认情况下,对上缺少的属性进行属性访问 c 对象返回空字符串,而不是未定义的对象。若要更改此项,请将此项添加到 config/environment.py

config['pylons.strict_c'] = True