for … 空循环 – Django模板标签

for … 空循环 – Django模板标签

Django模板是一个使用Django模板语言标记的文本文档或Python字符串。Django是一个强大的包含电池的框架,为在模板中呈现数据提供了便利。Django模板不仅允许从视图到模板传递数据,而且还提供了一些有限的编程功能,如变量、for循环、注释、扩展等。
本文围绕着如何在Templates中使用for标签和empty。for标签在一个数组中的每个项目上循环,使该项目在一个上下文变量中可用。for标签可以接受一个可选的{% empty %}子句,如果给定的数组是空的或找不到,则显示其文本。这基本上被用作检查查询集是否为空的条件,以及在相同情况下要执行的操作。

语法:

{% for i in list %}
// Do this in non - empty condition
{% empty %}
// Do this in empty condition
{% endfor %}

示例:
例如,要显示 athlete_list 中提供的运动员名单。

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% empty %}
    <li>Sorry, no athletes in this list.</li>
{% endfor %}
</ul>

上述内容等同于–但比以下内容更短、更干净,而且可能更快。

<ul>
  {% if athlete_list %}
    {% for athlete in athlete_list %}
      <li>{{ athlete.name }}</li>
    {% endfor %}
  {% else %}
    <li>Sorry, no athletes in this list.</li>
  {% endif %}
</ul>

for … 空循环 – Django模板标签说明

用一个例子说明如何在Django模板中使用…空标签。考虑一个名为geeksforgeeks的项目,有一个名为geeks的应用程序。

现在创建一个视图,我们将通过它来传递上下文字典。
In geeks/views.py,

# import Http Response from django
from django.shortcuts import render
 
# create a function
def geeks_view(request):
    # create a dictionary
    context = {
        "data" : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    }
    # return response
    return render(request, "geeks.html", context)

创建一个url路径来映射到这个视图。在geeks/urls.py中。

from django.urls import path
 
# importing views from views.py
from .views import geeks_view
 
urlpatterns = [
    path('', geeks_view),
]

在templates/geeks.html中创建一个模板。

{% for i in data %}
    <div class="row">
        {{ i }}
    </div>
{% endfor %}

让我们检查一下”/”上显示的内容是否在模板中显示。

for ... 空循环 - Django模板标签

在for标签之间围起来的任何东西都会被重复,即循环运行的次数。
现在让我们传递一个空数组,并使用空标签和for标签。
在 geeks/views.py,

# import Http Response from django
from django.shortcuts import render
  
# create a function
def geeks_view(request):
    # create a dictionary
    context = {
        "data" : [],
    }
    # return response
    return render(request, "geeks.html", context)

现在在templates/geeks.html中。

{% for i in data %}
    <div class="row">
        {{ i }}
    </div>
    {% empty %}
    <h4>There is nothing in this list</h4>
{% endfor %}

现在,请检查http://127.0.0.1:8000/ 。

for ... 空循环 - Django模板标签

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程