Python · 1 分钟阅读
模板系统基础
Django 模板系统(DTL)负责把数据塞进 HTML 字符串,并提供标签、过滤器、继承等能力。
渲染三步
from django.template import Template, Context
tpl = Template("Hello {{ name }}!")
ctx = Context({"name": "Django"})
tpl.render(ctx) # "Hello Django!"
实际开发中,99% 的场景使用 render() 快捷方式。
settings.TEMPLATES
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [BASE_DIR / "templates"],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
},
},
]
| 选项 | 含义 |
|---|---|
BACKEND |
模板引擎(DTL / Jinja2) |
DIRS |
共享模板目录 |
APP_DIRS |
是否在每个 App 的 templates/ 中查找 |
context_processors |
自动注入模板上下文的可调用对象 |
推荐 DTL:与 Django 集成最完整,安全策略(自动转义)开箱即用。