{# 注释 #}是注释。
使用双花括号{{ }}来表示变量替换。例如,{{ name }}会被实际的值替换。
使用{% %}来表示控制流语句,如条件判断和循环迭代。
{% if age>=18 %} <p>成年</p> {% elif age>=7 %} <p>上学</p> {% else %} <p>小孩</p> {% endif %}
{% 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 %}。
本文作者:a
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!