python测试开发django-68.templates模板标签{% for %}

python测试开发django-68.templates模板标签{% for %},第1张

概述前言有些标签类似这样:{%tag%},需要开始和结束标签例如:{%tag%}...标签内容...{%endtag%},一般用于循环列表对象输出内容。for标签{%for%}允许我们在一个序列上迭代。与Python的for语句的情形类似,循环语法是foriteminiterator。每一次循环中,模板系统会渲 前言

有些标签类似这样: {% tag %} ,需要开始和结束标签 例如:{% tag %} ...标签 内容 ... {% endtag %},一般用于循环列表对象输出内容。

for 标签

{% for %} 允许我们在一个序列上迭代。与Python的 for 语句的情形类似,循环语法是 for item in iterator。
每一次循环中,模板系统会渲染在 {% for %} 和 {% endfor %} 之间的所有内容。

比如写个模板navigationbar.HTML

<!DOCTYPE HTML><HTML lang="en"><head>    <Meta charset="UTF-8">    <Title>Title</Title></head><body>{% for name in name_List %}<h1>    <span>{{ name.type }}</span></h1>{% endfor %}</body></HTML>
vIEws视图

视图函数把列表的内容填充到模板上

from django.shortcuts import render# 上海悠悠,QQ交流群:750815713def navList(request):    name_List = [        {            "type": "科普读物",            "value": ["宇宙知识", "百科知识", "科学世界", "生物世界"]        },        {            "type": "计算机/网络",            "value": ["Java", "Python", "C语言"]        },        {            "type": "建筑",            "value": ["标准/规范", "室内设计", "建筑科学", "建筑文化"]        }    ]    context = {"name_List": name_List}    return render(request, "navigationbar.HTML", context=context)

运行后显示效果

empty标签

for ... empty ...enddor:for标签带有一个可选的{% empty %}从句,以便再给出的组是空的或者没有被找到时,给个默认值

<body>{% for name in name_List %}<h1>    <span>{{ name.type }}</span></h1>{% empty %}    <span> 无标签 </span>{% endfor %}</body>

当name_List的值为空时,就会显示empty值:无标签

from django.shortcuts import renderdef navList(request):    context = {"name_List":[]}    return render(request, "navigationbar.HTML", context=context)
内部模板变量forloop

在{% for %}循环内部,可以访问一个名为forloop的模板变量。这个变量有若干属性,通过它们可以获知循环进程的一些信息。

forloop.counter: 表示循环的次数。这个属性的值从 1 开始,因此第一次循环时,forloop.counter 等于 1 。forloop.counter0: forloop.counter0 与 forloop.counter 类似,不过是从零开始的。第一次循环时,其值为 0 。forloop.revcounter:forloop.revcounter的值是一个整数,表示循环中剩余的元素数量。第一次循环时, forloop.revcounter 的值是序列中要遍历的元素总数。最后一次循环时, forloop.revcounter的值为 1 。forloop.revcounter0:forloop.revcounter0 与 forloop.revcounter类似,不过索引是基于零的。第一次循环时, forloop.revcounter0的值是序列中元素数量减去一。最后一次循环时, forloop.revcounter0 的值为 0 。forloop.first:forloop.first 是个布尔值,第一次循环时为 True 。需要特殊处理第一个元素时很方便forloop.last:forloop.last是个布尔值,最后一次循环时为True 。经常用它在一组链接之间放置管道符号:forloop.parentloop:在嵌套的循环中, forloop.parentloop引用父级循环的 forloop 对象

以 forloop.last 为例,在每个链接后放管道符号,最后一个不用放

<body>{% for name in name_List %}<h1>    <span>{{ name.type }}</span></h1>    {% for n in name.value %}        <span>        {{ n }}{% if not forloop.last %} | {% endif %}        </span>    {% endfor %}{% empty %}    <span> 无标签 </span>{% endfor %}</body>

显示效果

总结

以上是内存溢出为你收集整理的python测试开发django-68.templates模板标签{% for %}全部内容,希望文章能够帮你解决python测试开发django-68.templates模板标签{% for %}所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1185371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存