集成 — Jinja 文档

来自菜鸟教程
Jinja/docs/2.9.x/integration
跳转至:导航、​搜索

一体化

Jinja2 提供了一些代码,用于集成到其他工具中,例如框架、Babel 库或您最喜欢的代码高亮编辑器。 这是对所包含内容的简要说明。

可在 此处获得有助于集成的文件。

巴别塔集成

Jinja 支持通过名为 jinja2.ext.babel_extract 的 Babel 提取器入口点从模板中提取 gettext 消息。 Babel 支持是作为 i18n Extension 扩展的一部分实现的。

从 trans 标签和代码表达式中提取的 Gettext 消息。

要从模板中提取 gettext 消息,该项目需要在其 Babel 提取方法 映射文件 中添加 Jinja2 部分:

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

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

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

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

2.7 版更改:直到 2.7 模板语法错误总是被忽略。 这样做是因为许多人将非模板 html 文件放入模板文件夹中,并且它会随机失败。 假设测试套件无论如何都会捕获模板中的语法错误。 如果您不想要这种行为,您可以将 silent=false 添加到设置并传播异常。


塔架

Pylons 0.9.7 开始,将 Jinja 集成到 Pylons 驱动的应用程序中非常容易。

模板引擎在 config/environment.py 中配置。 Jinja2 的配置看起来像这样:

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

文字伴侣

TextMate 有一个 包,它支持 Jinja1 和 Jinja2 的语法高亮显示,用于基于文本的模板以及 HTML。 它还包含一些经常使用的片段。


维姆

Vim 的语法插件存在于 Vim-scripts 目录以及 Jinja2 项目根目录下的 ext 文件夹中。 脚本支持Jinja1和Jinja2。 安装后有两种文件类型可用 jinja 和 htmljinja。 第一个用于基于文本的模板,后者用于 HTML 模板。

将文件复制到 syntax 文件夹中。