tera的基本语法
tera的基本语法
{{ and }} 表达式(expressions)
{% and %} 声明语句(statements)
{# and #} 注释(comments)
raw块
避免被渲染
{% raw %}
{{ 这段内容不会被Tera解析 }}
{% endraw %}
变量
- 用set声明变量.
- 在循环和宏中的变量拥有作用域。
- 循环变量在循环结束后不再可用。在其他地方设置的变量在整个模板中可用。如果想要在循环中设置全局变量,用set_global。
{% set name = "Tera" %}
{{ name }}
空白控制
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站砸松果-函数和过滤器