Flask模板语言Template语法

35次阅读
没有评论

共计 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 %}。

正文完
post-qrcode
 0
三毛
版权声明:本站原创文章,由 三毛 于2023-12-29发表,共计1333字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)