集成 — Jinja 文档
一体化
Jinja2 提供了一些代码,用于集成到其他工具中,例如框架、Babel 库或您最喜欢的代码高亮编辑器。 这是对所包含内容的简要说明。
巴别塔集成
Jinja 支持通过名为 jinja2.ext.babel_extract 的 Babel 提取器入口点从模板中提取 gettext 消息。 Babel 支持是作为 i18n Extension 扩展的一部分实现的。
从 trans 标签和代码表达式中提取的 Gettext 消息。
要从模板中提取 gettext 消息,该项目需要在其 Babel 提取方法 映射文件 中添加 Jinja2 部分:
Environment
的语法相关选项也可用作映射文件中的配置值。 例如,要告诉提取模板使用 %
作为 line_statement_prefix,您可以使用以下代码:
Extensions 也可以通过将导入路径的逗号分隔列表作为 extensions 值传递来定义。 i18n 扩展是自动添加的。
2.7 版更改:直到 2.7 模板语法错误总是被忽略。 这样做是因为许多人将非模板 html 文件放入模板文件夹中,并且它会随机失败。 假设测试套件无论如何都会捕获模板中的语法错误。 如果您不想要这种行为,您可以将 silent=false
添加到设置并传播异常。
塔架
从 Pylons 0.9.7 开始,将 Jinja 集成到 Pylons 驱动的应用程序中非常容易。
模板引擎在 config/environment.py 中配置。 Jinja2 的配置看起来像这样:
之后,您可以使用 pylons.templating 模块中的 render_jinja 函数渲染 Jinja 模板。
此外,将 Pylons 的 c 对象设置为严格模式是个好主意。 默认情况下,c 对象上不存在的属性的任何属性都返回空字符串而不是未定义的对象。 要更改它,只需使用此代码段并将其添加到您的 config/environment.py 中: