027:for标签使用详解

for标签使用详解:

for...in... 标签: for...in... 类似于 Python 中的 for...in... 。可以遍历列表、元组、字符串、字典等一切可以遍历的对象。示例代码如下:

{% for person in persons %}
    <p>{{ person.name }}</p>
{% endfor %}

如果想要反向遍历,那么在遍历的时候就加上一个 reversed 。示例代码如下:

{% for person in persons reversed %}
    <p>{{ person.name }}</p>
{% endfor %}

遍历字典的时候,需要使用 items 、 keys 和 values 等方法。在 DTL 中,执行一个方法不能使用圆括号的形式。遍历字典示例代码如下:

{% for key,value in person.items %}
    <p>key:{{ key }}</p>
    <p>value:{{ value }}</p>
{% endfor %}

在 for 循环中, DTL 提供了一些变量可供使用。这些变量如下:

  • forloop.counter :当前循环的下标。以1作为起始值。
  • forloop.counter0 :当前循环的下标。以0作为起始值。
  • forloop.revcounter :当前循环的反向下标值。比如列表有5个元素,那么第一次遍历这个属性是等于5,第二次是4,以此类推。并且是以1作为最后一个元素的下标。
  • forloop.revcounter0 :类似于forloop.revcounter。不同的是最后一个元素的下标是从0开始。
  • forloop.first :是否是第一次遍历。
  • forloop.last :是否是最后一次遍历。
  • forloop.parentloop :如果有多个循环嵌套,那么这个属性代表的是上一级的for循环。

3. for...in...empty 标签:这个标签使用跟 for...in... 是一样的,只不过是在遍历的对象如果没有元素的情况下,会执行 empty 中的内容。示例代码如下:

{% for person in persons %}
    <li>{{ person }}</li>
{% empty %}
    <li>暂时还没有任何人</li>
{% endfor %}

实例代码如下:

views.py:

from django.shortcuts import render

# Create your views here.
# my_dict = {"name": ‘tom‘}
# my_list = ["jerry",]
# my_tupe = ("alice",)
my_dict = {‘books‘:[
                    {"name":‘红楼梦‘,‘author‘:‘曹雪芹‘,"price":150},
                    {"name":‘水浒传‘,‘author‘:‘罗贯中‘,"price":140},
                    {"name":‘三国演义‘,‘author‘:‘施耐庵‘,"price":160},
                    {"name":‘西游记‘,‘author‘:‘吴承恩‘,"price":130},
                    ],
            # "comment": [‘内容不错‘, "真的假的啊"],
            "comment": [],
           }

def index(request):
    return render(request, ‘index.html‘, context=my_dict)
    # return render(request, ‘index.html‘, context={‘age‘: 20})
    # return render(request, ‘index.html‘, context={‘username‘: "jack_cheng",
    #                                               ‘list1‘:my_dict,
    #                                               ‘list2‘:my_list,
    #                                               ‘list3‘:my_tupe})

url.py:

from django.contrib import admin
from django.urls import path
from front import views
urlpatterns = [
    path(‘admin/‘, admin.site.urls),
    path(‘front/‘, views.index),
]

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{#<p>字符串:{{ username }}</p>#}
{#<p>字典:{{ list1.name }}</p>#}
{#<p>列表:{{ list2.0 }}</p>#}
{#<p>元组:{{ list3.0 }}</p>#}
{#{% if age < 18 %}#}
{#    <p>您是未成年人</p>#}
{#{% elif age >= 18 and age < 80 %}#}
{#    <p>您是成年人</p>#}
{#{% else %}#}
{#    <p>您是老年人</p>#}
{#{% endif %}#}
<table>
    <thead>
        <tr>
            <td>序号</td>
            <td>作者</td>
            <td>书名</td>
            <td>价格</td>
        </tr>
    </thead>
    <tbody>
    {% for book in books  %}
        {% if forloop.first %}
            <tr style="background: red;">
        {% elif forloop.last %}
            <tr style="background: pink">
        {% else %}
            <tr>
        {% endif %}
            <td>{{ forloop.counter }}</td>
            <td>{{ book.name }}</td>
            <td>{{ book.author }}</td>
            <td>{{ book.price }}</td>
        </tr>
    {% endfor %}

    </tbody>
</table>

{% for item in comment %}
    <li>{{ item }}</li>
{% empty %}
    <li>抱歉内容为空</li>
{% endfor %}

</body>
</html>

原文地址:https://www.cnblogs.com/zheng-weimin/p/10170795.html

时间: 2024-10-10 00:39:31

027:for标签使用详解的相关文章

Struts标签库详解【3】

struts2标签库详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts-tags" %> If elseif  else 描述: 执行基本的条件流转. 参数: 名称 必需 默认 类型 描述 备注 test 是 boolean 决定标志里的内容是否显示的表达式 else标志没有这个参数 id 否 Object/String 用来标识元素的

meta标签之详解

meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码: <head><meta http-equiv="content-Type" content="text/html; charset=gb2312"></head> 也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,例如加入关键字会自动被大型搜索网站自动搜集:可以设定页面格式及刷新等等.

标签知识详解

不干胶也叫自粘标签材料,是以纸张.薄膜或特种材料为面料,背面涂有胶粘剂,以涂硅保护纸为底纸的一种复合材料.由于涂布技术有多种,致使不干胶材料形成有不同档次,目前的发展方向是由传统的辊式涂布.刮刀涂布向高压流延涂布方向发展,以最大限度保证涂布的均匀感性,避免气泡和针眼的产生,保证涂布质量,而流延布涂布在国内技术还未成熟,国内主要采用的是传统辊式涂布.  条码机常用的不干胶标签由底纸.面纸及作为两者粘合的粘胶剂三部分组成.底纸表面呈油性,对粘胶剂具有隔离作用,所以用作面纸的附着体,以便面纸能够很容易

iframe标签用法详解(属性、透明、自适应高度)(总结)

<iframe src="http://www.jb51.net" width="200" height="500"> 脚本之家使用了框架技术,但是您的浏览器不支持框架,请升级您的浏览器以便正常访问脚本之家. </iframe> 在transparentBody.htm文件的<body>标签中,我已经加入了style="background-color=transparent" 通过以下四种

表格标签的详解

表格标记 表格是有行.有列.作用:显示表格类的数据. 文字.图片.表格套表格 一个表格的结构: 图示:以下是一个两行四列的一个表格 名称 苹果 价格 6 总价 12 ? ? 语法结构: <table> <caption>表格的标题</caption> ????<tr> ????????<th></th> <th></th> <th></th> <th></th>

struts2标签库详解

原文:struts2标签库详解 源代码下载地址:http://www.zuidaima.com/share/1781606927846400.htm 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts-tags" %> If elseif  else 描述: 执行基本的条件流转. 参数: 名称 必需 默认 类型 描述 备注 test 是 bo

026:if标签使用详解

if标签使用详解: if 标签: if 标签相当于 Python 中的 if 语句,有 elif 和 else 相对应,但是所有的标签都需要用标签符号  {%  %}  进行包裹. if 标签中可以使用 ==.!=.<.<=.>.>=.in.notin.is.is not 等判断运算符.示例代码如下: 一.views.py文件: def index(request): return render(request, 'index.html', context={'age': 20})

Struts标签库详解【1】

struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri="/struts-tags" %> If elseif  else 描述: 执行基本的条件流转. 参数: 名称 必需 默认 类型 描述 备注 test 是 boolean 决定标志里的内容是否显示的表达式 else标志没有这个参数 id 否 Object/String 用来标识元素的i

HTML5标签embed详解

摘要: <embed> 标签是 HTML 5 中的新标签,用来定义嵌入的内容,比如插件.类似于HTML 4.01 中的object和applet标签.我们要在网页中正常显示flash内容,那么页面中必须要有指定flash路径的标签,也就是OBJECT.APPLET和EMBED标签.applet适用于外网访问,用来加载java文件.object适用于内网访问,用来加载图像.音频.视频.Java applets.ActiveX.PDF 以及 Flash.applet 适合在一个支持多种浏览器的环境