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 Codefrom 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对象提供的数据填充的文章页面。