模板变量:
{{ 变量名 }}
模板标签 有开始有结束
{% 变量名 %}1.for{%for i in li%}#li可为模板变量,i则为模板变量的值{% endfor %}
forloop :
1) forloop.counter 当前循环次数,下标从1开始
2) forloop.counter0 同上,下标从0开始
3) forloop.recounter 与forloop.counter一样,下标从大到小 eg:4,3,2,14) forloop.recountet0 与forloop.counter0一样,下标从大到小 ge:3,2,1,05) forloop.frist 返回bool,若此循环是第一次循环则返回True,否则返回False6) forloop.last 返回bool,若此循环是最后一次循环则返回True,否则返回False2.ifelifelse#需注意 等等两边都是有空格的1){%if temp == null %}2){%if temp == null %}{%elif temp ==0%}{%else temp =='str'%}#最后需加上 {% endif %}3. ifequal ifnotequal
1){% ifequal num None%}# 相当于 {% if num == None %}{% endifequal %}2){% ifnotequal num None%}# 相当于 {% if num != None %}{% endifnotequal %}4.forin empty
1){%for i in re %}<p>{{ i }}</p>{% empty %}<p>空数据</p>{% endfor %}#若i为空值则输出空数据,不为空则输出i5.with#别名变量的使用必须在endwith之前{%with wuxuanyang as wxy %}{{ wxy }}{% endwith %}6.autoescape #批量关闭django的防止转义
html ="<h1>this is python </h1>"{% autoescape off %}{{ html }}{% endautoescape %}7.url
{% url '主路由别名/子路由别名'%}# 可以在url模板标签后带参数,但是在路由分配和视图函数中必须有变量去接收这个函数
forloop.counter 与 forloop.parentloop.counter
1.<body>{%for char in qu %}<p style="color: red">这是外层循环次数:{{ forloop.counter }}</p>{%for num in re %}<span style="color: green">这是内层循环次数:{{ forloop.counter }}</span><span >{{ char }}and{{ num }}</span>{% endfor %}<p></p>{% endfor %}</body>2.
eg:<body>{%for char in qu %}<p style="color: red">这是外层循环次数:{{ forloop.counter }}</p>{%for num in re %}<span style="color: green">这是外层循环次数:{{ forloop.parentloop.counter }}</span><span >{{ char }}and{{ num }}</span>{% endfor %}<p></p>{% endfor %}</body>
运行结果:
forloop.counter只会统计本层循环的次数,而forloop.parentloop.counter 统计的是上一层循环的次数
模板继承与引用
#被继承模板:{% block name %}{{ body }}{% endblock name %}# 继承模板{% load '模板路径'%}{% block name %}{{ block.super}}#继承模板内容{% endblock name %}## 根据block后的name进行继承分类,方便重写{% block name %}{% endblock %}