推荐答案
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 %}
标签实现的。
-- -------------------- ---- ------- ---- --------- --- ------ ------ --------- ----- ----- ---- ------ -------- ---------- ------- ------ ---- ------------- -- ----- ------- ---- -------- -- ------ ------- ------- ---- ---------- --- -- ------- ----------- -- -- ----- ----- ---- ------ -------- -- -- ----- ------- -- ------- -- --- ------- -- -- --------- -- -------- --
在这个例子中,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 中嵌入动态内容变得简单而灵活。