共计 1333 个字符,预计需要花费 4 分钟才能阅读完成。
注释
{# 注释 #}是注释。
变量替换
使用双花括号 {{}} 来表示变量替换。例如,{{name}}会被实际的值替换。
控制流语句
使用 {% %} 来表示控制流语句,如条件判断和循环迭代。
if 语句
{% if age>=18 %}
<p> 成年 </p>
{% elif age>=7 %}
<p> 上学 </p>
{% else %}
<p> 小孩 </p>
{% endif %}
for 语句
{% for like in likes %}
<p>{{like}}:index-{{loop.index}} index0-{{loop.index0}} revindex-{{loop.revindex}} revindex0-{{loop.revindex0}}</p>
{% endfor %}
配合 if 语句:
{% for like in likes %}
{% if loop.first %}
<p style="color: red">{{like}}:index-{{loop.index}} index0-{{loop.index0}} revindex-{{loop.revindex}} revindex0-{{loop.revindex0}}</p>
{% elif loop.last %}
<p style="color: blue">{{like}}:index-{{loop.index}} index0-{{loop.index0}} revindex-{{loop.revindex}} revindex0-{{loop.revindex0}}</p>
{% else %}
<p>{{like}}:index-{{loop.index}} index0-{{loop.index0}} revindex-{{loop.revindex}} revindex0-{{loop.revindex0}}</p>
{% endif %}
{% endfor %}
过滤器
模板过滤器相当于函数,把当前的变量传入过滤器,过滤器根据自己的功能对变量进行相应的处理,再返回对应的值。语法:{{变量 | 过滤器 | 过滤器 …}}
官方文档:https://jinja.palletsprojects.com/en/3.0.x/templates/#builtin-filters
结构标签
父模板挖坑,子模板填坑。
base.html:
{% block blockname %}
{% endblock %}
child.html:
{# 继承父模板 #}
{% extends "base.html" %}
{% block blockname %}
<p>Flask</p>
{% endblock %}
child2.html:
{% extends "child.html" %}
{% block blockname %}
{{super() }}
<p>Python</p>
{% endblock %}
super()继承后保留父模板块中的内容。
include 将其他模板包含进来:{% include “xxx.html” %}。
宏
类似函数:
{# 宏定义 #}
{% macro func(name, age) %}
<p> 姓名:{{name}},年龄:{{age}}</p>
{% endmacro %}
{# 调用宏 #}
{{func('张三',18) }}
宏调用也可以用导入:{% from “xxx” import xxx %}。
正文完