学习Django模板中的循环,条件判断,常用的标签,过滤器的使用。
- 列表,字典,类的实例的使用
- 循环: 迭代显示列表、字典等中的数据
- 条件判断:判断是否显示该内容
- 标签:for,if 这样的功能标签
- 过滤器:管道符号后面的功能,比如{{ var|length }},求变量长度的 length 就是一个过滤器。
如果需要将一个或多个变量
共享给多个网页或者所有网页
使用,比如在网页上显示来访者的IP,这个可以使用 Django 上下文渲染器
来做。
Demo1:显示一个基本的字符串在网页上
views.py
修改 home
函数,如下
def home(request):
.... string = '这个是通过 模板进行显示 字符串的功能'
.... return render(request,'home.html',{'string':string})
在home.html
文件通过{{ string }}
进行引用数据
Demo2:显示List内容
修改home函数
,如下:定义一个列表TutorialList
def home(request):
.... string = '这个是通过 模板进行显示 字符串的功能'
.... TutorialList = ["HTML", "CSS", "jQuery", "Python", "Django"]
.... return render(request, 'home.html', {'TutorialList': TutorialList,'string':string})
修改home.html
文件,如下:
运行,就会初夏我们需要的列表数据了
简单总结一下:一般的变量之类的用 {{ }}
(变量),功能类的,比如循环,条件判断是用 {% %}
(标签)
Demo3:显示字典中的内容
修改home函数
,如下:定义一个字典 info
def home(request):
.... string = '这个是通过 模板进行显示 字符串的功能'
.... info = {'site':'Django学习笔录','content':'这是一个字典类型的数据'}
.... TutorialList = ["HTML", "CSS", "jQuery", "Python", "Django"]
.... render(request,'home.html',{'TutorialList':TutorialList,'string':string,'info':info})
修改home.html
,如下:
最后输出的结果为:
Demo4:在模板中进行条件判断 和for循环的详细操作
定义一个新的函数 learn_if_for
<code>
做100个数字的List
def learn_if_for(request):
List = map(str,range(100))
return render(request,'learn_if_for.html',{'List':List})
</code>
新建模板learn_if_for
使用forloop.last
进行判断是否是最后一个
for循环中还有很多类似 的变量:
forloop.counter .....索引从 1 开始算
forloop.counter0 .....索引从 0 开始算
forloop.revcounter .....索引从最大长度到 1
forloop.revcounter0 .....索引从最大长度到 0
forloop.first ......当遍历的元素为第一项时为真
forloop.last ......当遍历的元素为最后一项时为真
forloop.parentloop .....用在嵌套的 for 循环中,获取上一层 for 循环的 forloop
若果列表为空,那么我们需要 进行空判断
图中的tempList,在python并没有进行创建,所以要 进行空判断
实现效果如下:
Demo5:模板中逻辑 操作
1 比较符的使用(==,!=,>=,<=,>,<)
新建operation.html,由于展示结果,代码如下:
2 条件判断关键字的使用(and, or, not, in, not in)
修改operation.html,代码如下: