Skip to content

第7章:模板系统

7.1 模板基础

模板语法

Django模板语言(DTL)是Django框架中用于生成HTML的简单语言。它允许开发者将Python代码逻辑与HTML标记分离,使得前端和后端开发可以并行进行。

基本模板语法包含三种主要元素:

  1. 变量:
  2. 标签:{% tag %}
  3. 注释:{# comment #}

变量和过滤器

变量在模板中使用双花括号表示,如。当模板引擎遇到变量时,会将其替换为变量的值。

html
<!-- 基本变量使用 -->
<h1>{{ title }}</h1>
<p>作者:{{ author.name }}</p>
<p>发布日期:{{ publish_date }}</p>

<!-- 使用过滤器 -->
<p>标题(大写):{{ title|upper }}</p>
<p>文章摘要:{{ content|truncatewords:30 }}</p>
<p>价格:{{ price|floatformat:2 }}</p>

常用的过滤器包括:

  • upper:转换为大写
  • lower:转换为小写
  • truncatewords:截断单词
  • floatformat:格式化浮点数
  • date:格式化日期
  • default:设置默认值

标签使用

Django模板标签使用{% %}语法,用于控制逻辑流程。

html
<!-- 条件标签 -->
{% if user.is_authenticated %}
    <p>欢迎,{{ user.username }}!</p>
{% else %}
    <p>请登录。</p>
{% endif %}

<!-- 循环标签 -->
<ul>
{% for article in articles %}
    <li>
        <a href="{{ article.get_absolute_url }}">{{ article.title }}</a>
        <span>发布于:{{ article.publish_date|date:"Y-m-d" }}</span>
    </li>
{% empty %}
    <li>暂无文章。</li>
{% endfor %}
</ul>

<!-- 包含其他模板 -->
{% include "header.html" %}

<!-- URL反向解析 -->
<a href="{% url 'article_detail' article.pk %}">阅读更多</a>

注释

在模板中添加注释有两种方式:

html
<!-- 这是HTML注释,在浏览器中可见 -->

{# 这是Django模板注释,在浏览器中不可见 #}

{% comment %}
这是多行注释
可以跨越多行
在浏览器中不可见
{% endcomment %}

模板注释不会发送到客户端浏览器,而HTML注释会发送到浏览器但不会显示。

小结

Django模板基础是前端开发的重要组成部分:

  1. ✅ 模板语法包含变量、标签和注释三种元素
  2. ✅ 变量使用语法,支持过滤器处理
  3. ✅ 标签使用{% tag %}语法,控制模板逻辑流程
  4. ✅ 注释分为HTML注释和Django模板注释
  5. ✅ 过滤器能够对变量进行格式化处理

掌握模板基础语法是使用Django模板系统的前提。

下一篇

我们将学习模板继承机制。

7.2 模板继承 →

目录

返回课程目录

Released under the Apache 2.0 License.