Django 模板学习笔记

什么是Django模板

Django模板是一种用于生成HTML页面的代码形式。它允许您将动态数据插入静态HTML代码中,以便在网页上以可视化方式呈现。

模板语法

在Django模板中,您可以使用以下语法:

变量

使用变量可以直接在HTML代码中插入动态内容。例如:

Copy Code
<p>欢迎 {{ user.username }}!</p>

上述代码将在HTML页面中插入当前用户的用户名。

标签

标签是一种特殊的语法,用于执行某些操作,例如循环、条件语句等。例如:

Copy Code
{% for item in items %} <li>{{ item }}</li> {% endfor %}

上述代码将循环遍历名为“items”的列表,并在每个项目的前面插入一个列表项。

过滤器

过滤器是一种可以修改变量值的函数。例如:

Copy Code
<p>{{ text|linebreaks }}</p>

上述代码将在插入text变量的同时自动将其转换为带有换行符的HTML格式。

模板继承

模板继承是一种让你在多个页面中共享相同HTML结构的方法。通过将通用元素定义在一个称为“基础模板”的文件中,其他模板可以继承此模板并仅包含其唯一内容。例如:

Copy Code
<!-- base.html --> <!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> {% block content %} {% endblock %} </body> </html>
Copy Code
<!-- index.html --> {% extends 'base.html' %} {% block title %}首页{% endblock %} {% block content %} <h1>欢迎来到我们的网站!</h1> {% endblock %}

上述代码显示了如何在Django中使用模板继承。

实例

下面是一个示例模板,它定义了一个简单的博客文章页面:

Copy Code
<!-- article.html --> {% extends 'base.html' %} {% block title %}{{ article.title }}{% endblock %} {% block content %} <h1>{{ article.title }}</h1> <p>{{ article.body }}</p> {% endblock %}

在这种情况下,我们在基础模板中定义了HTML头和脚注,而article.html则仅提供唯一的内容:文章标题和正文。

使用上述模板,我们可以在视图函数中渲染页面,如下所示:

pythonCopy Code
from django.shortcuts import render from .models import Article def article_view(request, id): article = Article.objects.get(id=id) return render(request, 'article.html', {'article': article})

这将显示由Article对象提供的数据填充的文章页面。