Django学习(7)-模板进阶

学习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文件,如下:

Django学习(7)-模板进阶_第1张图片
145F3118-D630-4900-A298-FC8651833321.png

运行,就会初夏我们需要的列表数据了

简单总结一下:一般的变量之类的用 {{ }}(变量),功能类的,比如循环,条件判断是用 {% %}(标签)

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,如下:

Django学习(7)-模板进阶_第2张图片

最后输出的结果为:

Django学习(7)-模板进阶_第3张图片

Demo4:在模板中进行条件判断 和for循环的详细操作

定义一个新的函数 learn_if_for


做100个数字的List
def learn_if_for(request):
List = map(str,range(100))
return render(request,'learn_if_for.html',{'List':List})

新建模板learn_if_for

Django学习(7)-模板进阶_第4张图片

使用forloop.last进行判断是否是最后一个
for循环中还有很多类似 的变量:

forloop.counter .....索引从 1 开始算
forloop.counter0 .....索引从 0 开始算
forloop.revcounter .....索引从最大长度到 1
forloop.revcounter0 .....索引从最大长度到 0
forloop.first ......当遍历的元素为第一项时为真
forloop.last ......当遍历的元素为最后一项时为真
forloop.parentloop .....用在嵌套的 for 循环中,获取上一层 for 循环的 forloop

若果列表为空,那么我们需要 进行空判断

Django学习(7)-模板进阶_第5张图片

图中的tempList,在python并没有进行创建,所以要 进行空判断

实现效果如下:

Django学习(7)-模板进阶_第6张图片

Demo5:模板中逻辑 操作

1 比较符的使用(==,!=,>=,<=,>,<)

新建operation.html,由于展示结果,代码如下:

Django学习(7)-模板进阶_第7张图片
2 条件判断关键字的使用(and, or, not, in, not in)

修改operation.html,代码如下:

Django学习(7)-模板进阶_第8张图片
3 判断一个变量是否在一个列表中

Demo6 在模板中获取当前网址,当前用户等

Django学习(7)-模板进阶_第9张图片
A6044EFF-0CEF-4B19-9C33-64387F38C85F.png

你可能感兴趣的:(Django学习(7)-模板进阶)