zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    [转载]详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表
    网络诊断小结
    Java代理模式示例程序
    [转载]Java中继承、装饰者模式和代理模式的区别
    [转载]JDK、SDK、J2EE、J2SE、J2ME的区别
    Java Web-JSTL
    [转载]Linux 命令详解:./configure、make、make install 命令
    jmeter之beanshell断言实例
    Appium左右、上下滑动(Java)
    【Maven】如何使用pom.xml引入自定义jar包
  • 原文地址:https://www.cnblogs.com/zheng-weimin/p/10170795.html
Copyright © 2011-2022 走看看