Menu
CoddyTech

模板中的循环

本课属于 Coddy Django 学习旅程的“Django 基础”单元。第 13 课,共 23 课。

咖啡馆有了一个新页面 /drinks/。它的视图会把每种饮品作为 drinks 传给模板,但页面上的列表是空的。{% for %} 标签会为每个项目重复生成一次 HTML。下面是一个列出空闲桌位的页面:

<ul>
{% for table in free_tables %}
    <li>Table {{ table }} is free.</li>
{% empty %}
    <li>Every table is taken.</li>
{% endfor %}
</ul>

它的工作方式和 Python 的 for 一样,table 会依次设为每个项目。模板没有缩进规则,因此 {% endfor %} 用于结束循环。可选的 {% empty %} 部分只会在列表为空时显示。

循环只能访问上下文中的名称,例如 drinks,而不能访问 views.py 中的变量。

challenge icon

挑战

简单

在 drinks.html 中,在 <ul> 内遍历 drinks。每种饮品都用一个 <li class="drink"> 显示名称。如果没有饮品,则显示 <li>No drinks today.</li>。

点击运行:/drinks/会列出 4 种饮品。

亲手试试

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Our Drinks</title>
</head>
<body>
    <h1>Our Drinks</h1>
    <ul>
        <!-- one <li class="drink"> per drink -->
    </ul>
</body>
</html>

Django 基础中的所有课

自己练习: Django 在线编辑器