模板中的循环
本课属于 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 中的变量。
挑战
简单在 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 在线编辑器