tera的基本语法

{{ and }} 表达式(expressions)

{% and %} 声明语句(statements)

{# and #} 注释(comments)

raw块

避免被渲染

{% raw %}
    {{ 这段内容不会被Tera解析 }}
{% endraw %}

变量

  • 用set声明变量.
  • 在循环和宏中的变量拥有作用域。
  • 循环变量在循环结束后不再可用。在其他地方设置的变量在整个模板中可用。如果想要在循环中设置全局变量,用set_global。
{% set name = "Tera" %}
{{ name }}

空白控制

img tera不会主动删除空白,需要用减号-来删除。

{%-if foo-%}...{%-endif-%}

注意:-号前后不能有空格。

注释

tera不会渲染注释。 也可以用html注释。

{# 这是注释 #}
<!--这是html的注释-->

连接

可以用波浪号~连接字符串、数字和变量。

{{ "Hello" ~ "world" }}

in判断

用in判断是否在列表中,返回true或false。

{% if "foo" in ["foo", "bar"] %}
    foo is in the list
{% endif %}

if判断

{% if foo %}
    foo is true
{% elif bar %}
    bar is true
{% else %}
    foo and bar are false
{% endif %}

使用and, or, not来组合条件,而不是&&, ||, !。

{% if foo and bar %}
    foo and bar are true
{% endif %}

for循环

数据通常在后端传递给模板。

{% for user in users %}
    {{ user.name }}
{% endfor %}

include

include可以引入其他html文件,相当于叠加。 文件名后面加上ignore missing,如果文件不存在,不会报错。

{% include "header.html" %}

继承

定义一个父模版,然后在子模版通过block继承。

<!-- 子模版 -->
{% extends "base.html" %}

使用{{ block.super }}来继承父模版的内容。

{% block content %}
    {{ block.super }}
    <p>子模版的内容</p>
{% endblock %}

只能在模版最上面一行引入宏,否则会发生错误

{% import "macros.html" as macros %}

参考教程:B站砸松果-tera的基本语法

函数和过滤器filter

参考教程:B站砸松果-函数和过滤器

参考

  1. B站砸松果