推荐答案
Django 模板语法是一种用于在 HTML 中嵌入动态内容的简单而强大的语言。它主要包括以下几个部分:
- 变量:使用双大括号
{{ variable }}来插入变量的值。 - 标签:使用
{% tag %}来执行一些逻辑操作,如循环、条件判断等。 - 过滤器:使用
{{ variable|filter }}来对变量进行格式化或转换。 - 注释:使用
{# comment #}来添加注释,这些注释不会在生成的 HTML 中出现。
本题详细解读
1. 变量
Django 模板中的变量用于在 HTML 中插入动态内容。变量的值通常是从视图函数中传递过来的上下文数据。
<p>Hello, {{ name }}!</p>在这个例子中,name 是一个变量,它的值会在渲染模板时被替换。
2. 标签
标签用于在模板中执行一些逻辑操作,比如循环、条件判断等。标签通常以 {% 开头,以 %} 结尾。
{% if user.is_authenticated %}
<p>Welcome back, {{ user.username }}!</p>
{% else %}
<p>Please log in.</p>
{% endif %}在这个例子中,{% if %} 标签用于检查用户是否已经登录,并根据结果显示不同的内容。
3. 过滤器
过滤器用于对变量进行格式化或转换。过滤器通过管道符号 | 应用于变量。
<p>Your name in uppercase: {{ name|upper }}</p>在这个例子中,upper 过滤器将 name 变量的值转换为大写。
4. 注释
Django 模板中的注释不会出现在生成的 HTML 中。注释使用 {# 和 #} 包裹。
{# This is a comment and will not be rendered in the HTML #}
<p>This is a paragraph.</p>在这个例子中,注释内容不会出现在最终的 HTML 输出中。
5. 模板继承
Django 模板系统支持模板继承,允许你创建一个基础模板,并在其他模板中扩展它。这是通过 {% extends %} 和 {% block %} 标签实现的。
// www.javascriptcn.com code example
<!-- base.html -->
<html>
<head>
<title>{% block title %}My Site{% endblock %}</title>
</head>
<body>
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>
<!-- child.html -->
{% extends "base.html" %}
{% block title %}My Page{% endblock %}
{% block content %}
<p>This is the content of my page.</p>
{% endblock %}在这个例子中,child.html 继承了 base.html,并重写了 title 和 content 块。
6. 其他常用标签
{% for %}:用于循环遍历列表或字典。{% include %}:用于包含其他模板文件。{% url %}:用于生成 URL。
{% for item in items %}
<p>{{ item }}</p>
{% endfor %}
{% include "header.html" %}
<a href="{% url 'home' %}">Home</a>这些标签和语法构成了 Django 模板系统的核心,使得在 HTML 中嵌入动态内容变得简单而灵活。