第7章:模板系统
7.1 模板基础
模板语法
Django模板语言(DTL)是Django框架中用于生成HTML的简单语言。它允许开发者将Python代码逻辑与HTML标记分离,使得前端和后端开发可以并行进行。
基本模板语法包含三种主要元素:
- 变量:
- 标签:
{% tag %} - 注释:
{# 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模板基础是前端开发的重要组成部分:
- ✅ 模板语法包含变量、标签和注释三种元素
- ✅ 变量使用
语法,支持过滤器处理 - ✅ 标签使用
{% tag %}语法,控制模板逻辑流程 - ✅ 注释分为HTML注释和Django模板注释
- ✅ 过滤器能够对变量进行格式化处理
掌握模板基础语法是使用Django模板系统的前提。
下一篇
我们将学习模板继承机制。