18 Django 模板语言基础
在 Django 中,模板语言是用于生成动态 HTML 的一种强大工具。掌握 Django 模板语言的基本概念和用法,有助于快速开发出功能丰富、用户友好的 web 应用。
模板的基本结构
Django 模板是由 HTML 和模板标签组成的文件。模板标签用 {% %}
包裹,纯文本内容则直接写在 HTML 中。
示例模板:
1 |
|
变量的使用
在模板中,可以通过双花括号 {{ }}
来引用变量。例如,如果我们在视图中传递了一个变量 name
,可以在模板中这样使用:
1 | <h1>欢迎, {{ name }}!</h1> |
视图代码示例:
1 | from django.shortcuts import render |
控制结构
if 语句
你可以使用 {% if %}
标签来进行条件判断。例如,判断用户是否登录:
1 | {% if user.is_authenticated %} |
for 循环
使用 {% for %}
标签可以遍历一个列表。例如,展示一个文章列表:
1 | <ul> |
视图代码示例:
1 | def article_list(request): |
过滤器
Django 提供了多种过滤器,用于格式化变量。使用 |
符号来应用过滤器。例如,将文本转换为大写:
1 | <p>{{ name|upper }}</p> |
常用的过滤器包括:
date
:格式化日期length
:获取列表长度default
:提供默认值
示例:
1 | <p>当前时间: {{ current_time|date:"Y-m-d H:i:s" }}</p> |
自定义标签和过滤器
如果内置的标签和过滤器无法满足需求,可以自定义它们。创建一个标签库,首先在你的应用目录下创建一个 templatetags
文件夹,并添加 __init__.py
和自定义标签文件。
1 | # myapp/templatetags/custom_tags.py |
在模板中使用自定义标签:
1 | {% load custom_tags %} |
模板继承
Django 的模板继承机制允许你创建一个基础模板,其他模板可以在此基础上进行扩展。使用 {% extends %}
和 {% block %}
定义和使用模板块。
基础模板:
1 | <!-- base.html --> |
子模板:
1 | <!-- index.html --> |
总结
通过学习 Django 模板语言的基础知识,你可以有效地在项目中处理动态内容。掌握变量、控制结构、过滤器、自定义标签和模板继承的使用,将帮助你构建出复杂而富有表现力的网页。随着对 Django 框架的深入了解,你将能够进一步扩展和优化你的应用。
18 Django 模板语言基础