Flask:02-秒懂Flask会话控制与模板引擎 (2)

| 过滤器 | 说明 |
| ————— | —————————————- |
| upper | 全大写 |
| lower | 全小写 |
| title | 每个单词首字母大写 |
| capitalize | 首字母大写 |
| trim | 去掉两边的空白 |
| striptags | 过滤HTML标签 |
| safe | 渲染时不转义(默认全部转义),只能使用在信任的变量渲染 |

动态开启关闭渲染转义

{# 动态开启关闭转义 #} {% autoescape False %} <div>{{ user }}</div> {% endautoescape %}

流程控制

{% if name %} <h1>Hello {{ name }}!</h1> {% else %} <h1>Hello World!</h1> {% endif %} <ol> {% for i in range(5) %} <li>{{ i }}</li> {% endfor %} </ol>

文件包含

说明:

当有多处相同的显示效果出现时,将内容单独提取出来,需要的地方直接包含进来即可。包含另一个文件,相当将其中的内容直接粘贴过来,避免了大量重复书写(复制粘贴)

使用:{% include 'include2.html' %}

宏的使用

定义宏:{% macro 宏名(参数) %}宏内容{% endmacro %}

调用宏:{{ 宏名(参数) }}

导入宏:{% from '宏所在文件' import 宏名 %}

说明:宏采用了类似于python中的函数进行定义和调用,可以减少代码的重复书写,而且比较灵活。

模板继承

说明:当一个网站的多个页面都很相似,只有细微的差别,可以通过模板继承减少重复书写。

使用:

parents.html

<html> <head> <meta charset="UTF-8"> <title>{% block title %}基础模板标题{% endblock %}</title> </head> <body> {% block body %}<div>默认内容</div>{% endblock %} </body> </html>

children.html

{# 继承自另一个模板 #} {% extends 'parents.html' %} {# 根据block可以修改原有的block内容 #} {% block title %}子模板标题{% endblock %} {% block body %} {# 保留基础模板中的内容 #} {{ super() }} <div>新加的内容</div> {% endblock %}

提醒:若在子模板重写了一个block,原来的显示效果全丢了,八成的原因是忘记书写{{ super() }}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppsww.html