Menu
CoddyTech

模板变量

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

首页应该展示今日特饮,而特饮定义在 Python 的 DRINKS 中。视图通过 render() 的第三个参数把数据传给模板,这个参数叫上下文:它是一个字典,包含模板可以使用的名称。

def team(request):
    barista = {"name": "Maya", "since": 2024}
    return render(request, "menu/team.html", {"barista": barista})

{{ barista }} 会输出一个值。用点号可以访问它内部的内容:{{ barista.name }} 会读取字典中的键或对象的属性。

<p>{{ barista.name }} has made your coffee since {{ barista.since }}.</p>

模板不是 Python:barista["name"] 会报错,而上下文中没有的名称不会输出任何内容,也不会报错。如果页面上缺少某个值,请先检查拼写。

challenge icon

挑战

简单

在主页显示今日特饮。

  1. 在 menu/views.py 中,让 home 将 DRINKS 中的馥芮白作为 special 传递给模板。
  2. 在 home.html 中,在第一个段落后添加 <p>Today's special: Flat White</p>,并从 special 读取名称。

按“运行”:主页会显示 Today's special: Flat White。

亲手试试

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Corner Café</title>
</head>
<body>
    <h1>Welcome to Corner Café</h1>
    <p>Fresh coffee and cake every day.</p>
    <a href="{% url 'menu:about' %}">About us</a>
</body>
</html>
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

Django 基础中的所有课

自己练习: Django 在线编辑器