模板标签用于进行条件判断,for循环之类的,常见的标签:if else endif
for in,以下按例子说明:
这里的模板标签是要写在HTML文件里的,在views中对HTML传入参数
views中传入的参数:
from django.shortcuts import render,redirect,reverse
from django.http import HttpResponse
from django.template.loader import render_to_string
def index(request):
context = {
'age':34,
'books':['三国演义','水浒传','西游记','金瓶梅'],
}
html = render_to_string('index.html',context=context)
return HttpResponse(html)
有的读者会说你为啥不写红楼梦啊,我要说我写的是明朝四大奇书
传入了两个参数,一个age 一个books
index.html内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p> 图书馆首页 </p>
{% if age > 18 and age < 33 %}
# 多个条件用and连接
<p>可以作我女朋友了</p>
{% elif age < 16 %}
<p>还在上学吧!</p>
{% endif %}
{% if '金瓶梅' in books %}
<p>这就是四大名著之一吗?受教了!</p>
{% endif %}
{% for book in books %}
<!-- <p>{{ forloop.counter }} 当前循环的下标。以1作为起始值。 </p>-->
当前循环的下标。以1作为起始值。
<!-- <p>{{ forloop.counter0 }} 当前循环的下标。以0作为起始值。</p>-->
<!-- <p>{{ forloop.revcounter }} 当前循环的反向下标值。比如列表有5个元素,那么第一次遍历这个属性是等于5,第二次是4,以此类推。并且是以1作为最后一个元素的下标。</p>-->
<!-- <p>{{ forloop.revcounter0 }} 类似于forloop.revcounter。不同的是最后一个元素的下标是从0开始。 </p>-->
<!-- <p>{{ forloop.first }} 是否是第一次遍历。</p>-->
<p>{{ forloop.last }} 是否是最后一次遍历。</p>
<p>{{ book }}</p>
{% endfor %}
<!-- 倒序-->
<!-- {% for book in books reversed %}-->
<!-- <p>{{ book }}</p>-->
<!-- {% endfor %}-->
</body>
</html>