📜  django 模板迭代字典 - Python (1)

📅  最后修改于: 2023-12-03 15:14:44.343000             🧑  作者: Mango

Django模板迭代字典 - Python

Django 中,我们经常需要在模板中迭代字典的键值对。这是因为字典是 Python 中最常用的数据结构之一,而且在许多情况下,我们需要在前端显示一个字典的内容。

首先,让我们来看一个简单的例子:

假设我们有一个字典,其中包含很多 key-value 对,我们的任务是在模板中显示出这些键值对,以便用户能够看到它们。

下面是示例字典:

dict = {'name': 'Peter', 'age': 25, 'country': 'USA'}

我们可以使用 Django 模板语言提供的 for-in 循环来迭代这个字典:

<ul>
{% for key, val in dict.items %}
  <li>{{ key }}: {{ val }}</li>
{% endfor %}
</ul>

在上面的代码中,我们首先使用 items() 方法将字典转换为一个由键值对组成的元组列表,然后使用 for-in 循环迭代这个列表,并在每一轮中输出键和值。

更复杂的例子:

既然你已经了解了如何迭代一个简单的字典,现在让我们来看一个更复杂的例子,在这个例子中,我们有一个字典列表,并且我们想要在模板中显示这个列表及其所有的 key-value 对。

下面是示例代码:

views.py 文件中:

def my_view(request):
    context = {
        'data': [
            {'name': 'Peter', 'age': 25, 'country': 'USA'},
            {'name': 'John', 'age': 30, 'country': 'Canada'},
            {'name': 'David', 'age': 35, 'country': 'Australia'}
        ]
    }
    return render(request, 'my_template.html', context)

my_template.html 文件中:

{% for item in data %}
  <h3>{{ item.name }}</h3>
  <ul>
  {% for key, val in item.items %}
    {% if key != 'name' %}
      <li>{{ key }}: {{ val }}</li>
    {% endif %}
  {% endfor %}
  </ul>
{% endfor %}

在上述代码中,我们首先在 views.py 文件中定义了一个名称为 my_view 的视图函数。该函数返回了一个字典,其中包含三个不同的字典,每个字典都包含一个人的详细信息。

然后,在 my_template.html 文件中,我们使用两个 for-in 循环来迭代每个字典列表中的所有字典。在外部循环中,我们使用 item 变量来迭代字典列表中的每个字典,然后在内部循环中,我们使用 keyval 变量来迭代每个字典的键值对。

if 联表中,我们检查当前迭代的键是不是 "name",如果是,则不输出任何内容。如果不是,我们就输出当前迭代的键和值。

结论

Django 中,循环迭代字典以及字典列表是一项非常基本的任务。通过掌握这些技能,你可以轻松地将字典和其他集合数据类型的内容显示为你喜欢的样式,并用它们构建出漂亮的视图。

希望本篇文章对于学习 DjangoPython 的读者有所帮助。