Django 强大的模板系统允许开发者轻松地将 Python 变量动态嵌入到 HTML 代码中。这大大简化了前端渲染,并提供了对页面内容的极大控制。让我们踏入 Django 模板的奇妙世界,发现变量和过滤器如何赋予我们控制前端的非凡能力。
变量
变量是存储值的占位符,在模板中,我们可以使用变量来访问 Python 对象。使用双大括号({{ 和 }}) 括起来,变量名称对应于 Python 上下文中定义的对象或值。
{{ my_variable }}
例如,考虑以下 Python 视图:
from django.shortcuts import render
def my_view(request):
context = {
"my_variable": "Hello, world!"
}
return render(request, "my_template.html", context)
在 my_template.html
中,我们可以访问 my_variable
变量:
<h1>{{ my_variable }}</h1>
这将显示 "Hello, world!" 作为网页的。
过滤器
过滤器是应用于变量的特殊函数,它们允许我们修改或格式化值。过滤器使用管道符号(|) 和过滤器名称来应用,后面跟着过滤器参数(如果需要)。
{{ my_variable|filter_name:argument }}
例如,考虑以下过滤器:
{{ my_variable|upper }}
这将把 my_variable
的值转换为大写。
内置过滤器
Django 提供了许多内置过滤器,包括:
- upper: 转换为大写
- lower: 转换为小写
- capitalize: 将第一个字母大写
- title: 每个单词的首字母大写
- length: 返回字符串的长度
- date: 格式化日期
- time: 格式化时间
自定义过滤器
除了内置过滤器,我们还可以创建自己的自定义过滤器。自定义过滤器必须是 Python 函数,并接受一个 value
参数和可选的 args
和 kwargs
参数。
from django import template
register = template.Library()
@register.filter
def my_custom_filter(value):
# 对值执行一些操作
return modified_value
在模板中,我们可以使用自定义过滤器:
{{ my_variable|my_custom_filter }}
上下文
上下文是一个字典,包含传递给模板的变量和过滤器。当渲染模板时,Django 会将视图函数中的上下文传入模板。我们可以使用 context
对象访问上下文中的所有变量和过滤器。
{{ context.my_variable }}
结论
Django 的模板系统通过变量和过滤器为我们提供了一个强大的工具,可以轻松地将 Python 对象和业务逻辑嵌入到前端。通过了解变量和过滤器如何工作,我们能够创建高度动态和可定制的模板,从而增强用户体验并简化开发。