找回密码
 立即注册

模板设计者文档

2022-2-22 23:49| 发布者: 笨鸟自学网| 查看: 12067| 评论: 0

摘要: 这份文档描述了模板引擎中的语法和语义结构,对于创建 Jinja 模板是一份相当有用 的参考。因为模板引擎非常灵活,应用中的配置会在分隔符和未定义值的行为方面与 这里的配置有细微差异。概要模板仅仅是文本文件。它 ...


表达式语句

如果加载了表达式语句扩展,一个名为 do 的扩展即可用。它工作几乎如同常规的变量 表达式( {{ ... }} ),只是它不打印任何东西。这可以用于修改列表:

{% do navigation.append('a string') %}

循环控制

如果应用启用来 循环控制 ,则可以在循环中使用 break 和 continue 。到达 break 时,循环终止。到达 continue 时,当前处理会终止并 从下一次迭代继续。

这个循环每两项跳过一次:

{% for user in users %}
    {%- if loop.index is even %}{% continue %}{% endif %}
    ...
{% endfor %}

同样,这个循环 10 次迭代之后会终止处理:

{% for user in users %}
    {%- if loop.index >= 10 %}{% break %}{% endif %}
{%- endfor %}

With 语句

New in version 2.3.

如果应用启用了 With 语句 ,将允许在模板中使用 with 关键 字。这使得创建一个新的内作用域。这个作用域中的变量在外部是不可见的。

With 用法简介:

{% with %}
    {% set foo = 42 %}
    {{ foo }}           foo is 42 here
{% endwith %}
foo is not visible here any longer

因为在作用域的开始设置变量很常见,你可以在 with 语句里这么做。下面的两 个例子是等价的:

{% with foo = 42 %}
    {{ foo }}
{% endwith %}

{% with %}
    {% set foo = 42 %}
    {{ foo }}
{% endwith %}

自动转义扩展

New in version 2.4.

如果你的应用程序设置了 自动转义扩展 ,你就可以在模版中开启或者关闭自动转义。

例子:

{% autoescape true %}
自动转义在这块文本中是开启的。
{% endautoescape %}

{% autoescape false %}
自动转义在这块文本中是关闭的。
{% endautoescape %}

在 endautoescape 标签之后,自动转义的行为将回到与之前相同的状态。


上一篇:沙箱下一篇:扩展

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2025-8-31 01:02 , Processed in 0.041728 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2017 Discuz Team. Template By 【未来科技】【 www.wekei.cn 】

返回顶部