四、 模板
- 概念
- 模板是用户展示数据
- 模板处理(加载、渲染)
- 模板语法
- 变量 {{ var }}
视图传递数据给模板
变量不存在,即忽略
- 标签 {% tag %}
逻辑控制
- 条件控制if
{% if 条件 %}
{% elif 条件 %}
{% else %}
{% endif %}
- 遍历for
{% for name in names %}
# 有数据处理
{% else %}
# 没有数据处理
{% endfor %}
- 结构标签 block
{% block xxx %}
{{ super() }} # 继承后保留父内容,不写会覆盖
{% end block %}
- 结构标签 extends
- 语法(模板继承)
# 继承
{% extends 'xxxx' %}
- 结构标签 include
{% include 'xxx.html' %}
将大的页面,切分为一个个小的模块,通过include进行拼接;
- 宏定义 macro(可以理解成一个函数)
1. 不带参数
- 宏定义
{% macro run() %}
<P>宏定义,测试...</p>
{% endmacro %}
- 宏定义 调用
{{ run() }}
2. 带参数
- 宏定义
{% macro create_li(name) %}
<li>{{ name }}</li>
{% endmacro %}
- 宏定义调用
<ul>
{% for name in names %}
{{ create_li(name) }}
{% endfor %}
</ul>
3. 引入其他文件中的宏定义
{% from 'mymacro.html' import create_goods %} # 导入其他模块的宏定义
{{ create_goods(goods_list) }} # 调用宏定义
宏定义类似于函数;将重复的操作、重复的功能封装起来,方便后续调用!
- 过滤器
{{ name | default('未登录') }} # 默认值
{{ name | capitalize }} # 首字母大写
{{ name | lower }} # 全小写
{{ name | upper }} # 全大写
{{ name | safe }} # 防止转义
{{ name | round(2, 'floor') }} # 保留两位小数
网友评论