| 过滤器 | 说明 |
| ————— | —————————————- |
| 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() }}