19 Django模板之模板语言
在上一章节中,我们讨论了Django视图如何与模型进行交互。在这一节中,我们将深入探索Django的模板语言,这将使我们能够在网页上呈现数据,实现动态的用户界面。
什么是Django模板?
Django模板是一个文本文件,通常是HTML格式,但也可以使用其他格式。模板可以包含静态数据(如HTML标记)和动态内容(由Django生成的内容),使用的是Django模板语言(DTL)。
模板语言的主要目的是将您的数据与视图中生成的上下文结合,从而生成动态的网页。它提供了一套简单易用的工具,允许我们使用变量、标签和过滤器来处理和显示数据。
Django模板的基本结构
一个简单的Django模板可能如下所示:
1 |
|
在上面的模板中,{{ title }}
、{{ header }}
和 {{ content }}
都是变量标记,它们可以在视图中定义并传递到模板中。
使用变量
要在Django中使用模板变量,您只需在视图中创建一个上下文字典,并在模板中使用变量标记。以下是一个基本示例:
视图(views.py)
1 | from django.shortcuts import render |
模板(home.html)
1 |
|
在这个例子中,当用户访问首页时,视图会生成一个上下文并将其传递给模板。模板通过{{ }}
语法使用这些变量。
控制结构
Django模板语言提供了一些控制结构,例如if语句和for循环,允许我们根据条件显示内容。
if语句
以下是如何在模板中使用if
语句的示例:
1 | {% if user.is_authenticated %} |
在这个例子中,如果用户已登录,将显示“欢迎回来”,否则显示“你好,访客!”的消息。
for循环
您可以使用for
标签遍历列表或字典中的项目:
1 | <ul> |
在这个例子中,item_list
是视图中提供的一组数据,模板将遍历列表并为每个项目生成一个列表项。
模板过滤器
Django模板还引入了过滤器,这些是能够修改变量输出的简单函数。过滤器使用管道符号|
来应用,如下所示:
1 | <p>当前日期:{{ current_date|date:"Y-m-d" }}</p> |
在这个例子中,date
过滤器将current_date
变量格式化为YYYY-MM-DD
的格式。
模板继承
模板继承是Django模板系统的一项强大功能。您可以创建一个基础模板,在其上定义页面的通用结构,然后通过子模板来实现特定页面的细节。
基础模板(base.html)
1 |
|
子模板(home.html)
1 | {% extends "base.html" %} |
在这个示例中,home.html
继承了base.html
,只需定义特定内容的block
即可。这大大提高了代码的重用性。
小结
在本篇章中,我们深入探讨了Django模板语言,学习了如何创建动态网页,包括如何使用变量、控制结构和模板继承。这些技能与之前讨论的视图和模型的交互密切相关,因为它们结合在一起,形成了Django应用的核心。
在下一章节中,我们将具体了解如何使用模板渲染动态内容,使您的页面更具互动性和吸引力。让我们准备好开始使用Django模板!
19 Django模板之模板语言