集成 — Jinja 文档

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

一体化

通天塔

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

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 也可以通过将导入路径的逗号分隔列表作为 extensions 值传递来定义。 i18n 扩展是自动添加的。

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


塔架

将 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