08 Django 模板进阶
本节主要讲 Django模板中的循环,条件判断,常用的标签,过滤器的使用。
-
列表,字典,类的实例的使用
-
循环:迭代显示列表,字典等中的内容
-
条件判断:判断是否显示该内容,比如判断是手机访问,还是电脑访问,给出不一样的代码。
-
标签:for,if 这样的功能都是标签。
- 过滤器:管道符号后面的功能,比如{{ var|length }},求变量长度的 length 就是一个过滤器。
如果需要将一个或多个变量共享给多个网页或者所有网页使用,比如在网页上显示来访者的IP,这个可以使用 Django 上下文渲染器 来做。
实例一、显示一个基本的字符串在网页上
实例二、讲解了基本的 for 循环 和 List内容的显示
实例三、显示字典中内容
实例四、在模板进行 条件判断和 for 循环的详细操作
在for循环中还有很多有用的东西,如下:
变量 | 描述 |
---|---|
forloop.counter | 索引从 1 开始算 |
forloop.counter0 | 索引从 0 开始算 |
forloop.revcounter | 索引从最大长度到 1 |
forloop.revcounter0 | 索引从最大长度到 0 |
forloop.first | 当遍历的元素为第一项时为真 |
forloop.last | 当遍历的元素为最后一项时为真 |
forloop.parentloop |
用在嵌套的 for 循环中, 获取上一层 for 循环的 forloop |
当列表中可能为空值时用 for empty
<ul>
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% empty %}
<li>抱歉,列表为空</li>
{% endfor %}
</ul>
views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
# 1、显示一个基本的字符串在网页上
string = '我在自强学院学习Django教程,非常感谢作者的无私奉献!'
# 2、基本的 for 循环 和 List内容的显示
TutorialList = ['HTML','CSS','jQuery','Python','Django']
# 3、显示字典中的内容
info_dic = {'site':'自强学堂','content':'各种IT技术教程'}
# 4、条件判断和for循环
list = map(str,range(21))
return render(request,'index.html',{'string':string,'TutorialList':TutorialList,
'info_dict':info_dic,'list':list})
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>MyTitle</title>
</head>
<body>
{{ string }}
<p>
教程列表:
{% for i in TutorialList %}
<li>{{ i }}</li>
{% endfor %}
</p>
<p><ol>
<li>站点:{{ info_dict.site }}</li>
<li>内容:{{ info_dict.content }}</li>
</ol>
</p>
<p>
{% for item in list %}
{{ item }}{% if not forloop.last %},{% endif %}
{% endfor %}
</p>
</body>
</html>