第四章 模板标签
1 模板标签定义
标签是在渲染的过程中提供的任意的逻辑(控制流程或者功能函数)
标签语法: 由 {% 逻辑 %} 来定义的,例如:{%tag%} {%endtag%} 或者 {% load static %}
2 常用标签
(1) 模板继承即包含
{% extends "base.html" %} # 模板继承
{% include "foo/bar.html" %} # 模板包含
(2) 判断
{% firstof var1 var2 var3 %}
等价于
{% if var1 %}
{{ var1 }}
{% elif var2 %}
{{ var2 }}
{% elif var3 %}
{{ var3 }}
{% endif %}
(3) 遍历
<ul>
{% for athlete in athlete_list %} #遍历列表
<li>{{ athlete.name }}</li>
{% empty %} # 没有数据输出下句
<li>sorry, no athletes in this list.</li>
{% endfor %}
</ul>
(4) 翻转列表
{% for obj in list reversed %}
(5) 循环参数
forloop.counter 顺序迭代序号 (1-开始)
forloop.counter0 顺序迭代序号 (0-开始)
forloop.revcounter 逆序迭代序号 (1-开始)
forloop.revcounter0 逆序迭代序号 (0-开始)
forloop.first 循环第一次经过
forloop.last 循环最后一次经过
forloop.parentloop 嵌套循环,父循环
(6) 条件判断
==, !=, <, >, <=, >=, in, not in, is, and is not
{% if somevar == "x" %}
This appears if variable somevar equals the string "x"
{% endif %}
(7) 日期时间
{{ value|date:"D d M Y" }} # 日期格式化
{{ value|time:"H:i" }} # 时间格式化
{{datetime |date:"Y-m-d H:i:s"}} # 年-月-日 时:分:秒
(1) 自定义简单标签
django.template.Library.simple_tag()
(1) 自定义简单标签
django.template.Library.simple_tag()