Django 4.2 复习笔记(七)Django 模板(TEMPLATES)

作者:J.sky · 发表于:
2023-06-03T07:32:59.000000Z
· 更新于:
2023-08-13T22:54:57.611619Z
· Tag: Django

作为一个网络框架,Django 需要一种方便的方式来动态生成 HTML,最常见的方法是依靠模板,一个模板包含了所需HTML输出的静态部分,以及一些特殊的语法,描述了如何插入动态内容。

配置Django模板引擎

配置Django模板引擎:在Django项目的设置文件中(settings.py),确保'Django.template.backends.django.DjangoTemplates'引擎被包含在TEMPLATES设置的'BACKENDS'中。

这是Django创建项目后默认的模板配置:

TEMPLATES = [
    {
        'BACKEND':  'django.template.backends.django.DjangoTemplates',
        'DIRS':     [],
        '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',
            ],
        },
    },
]

下面是修改添加并设置了模板目录的配置项:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(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',
            ],
        },
    },
]

告诉Django要启用Django自带的模板引擎。

"BACKEND": "django.template.backends.django.DjangoTemplates",
"APP_DIRS": True,

指定模板文件的存放目录为项目的子目录下templates

'DIRS': [os.path.join(BASE_DIR, 'templates')],# 修改位置

至此,Django模板就配置好了。

使用Django的模板

在模板文件(例如,template.html)编写模板文件:

<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
    <h1>Hello, {{ name }}!</h1>
    {% if age %}
        <p>Your age is {{ age }}.</p>
    {% else %}
        <p>Your age is not specified.</p>
    {% endif %}
</body>
</html>

配置好路由:

urlpatterns = [
    path("", views.index, name="index"),
    path("test_view/", views.test_view, name="test_view"),
]

在上述示例中,视图函数test_view创建了一个包含'title'、'name'和'age'的上下文对象。然后使用render函数将模板文件名、上下文对象和请求作为参数传递。最后Django将渲染模板并返回最终的HTML响应。

我们启动Django的服务器来进行测试:python manage.py runserver

我们就可以正常的看到模板渲染出来的页面了。

总结

以下是使用Django模板的基本步骤:

  1. 配置Django模板引擎:在Django项目的设置文件中(settings.py),确保'Django.template.backends.django.DjangoTemplates'引擎被包含在TEMPLATES设置的'BACKENDS'中。

  2. 创建模板文件:在Django项目的一个目录中,创建一个包含HTML代码的模板文件。通常,模板文件位于一个名为'templates'的子目录中。

  3. 定义模板变量:在模板中,可以使用双大括号({{ variable_name }})来包围变量名,以将其插入到模板中。

  4. 控制流和逻辑:在模板中,可以使用控制结构(如if语句和for循环)来控制显示的内容。

  5. 继承和包含:Django模板还支持模板继承和包含,可以在一个模板中使用{% extends %}和{% include %}指令来重用和组合模板代码。

  6. 上下文传递:在Django视图函数中,可以通过上下文对象将数据传递给模板。上下文对象是一个包含键值对的字典,其中键是在模板中使用的变量名称,值是要传递给模板的实际数据。

  7. 渲染模板:在Django视图函数中,使用Django的渲染器(render)将模板和上下文对象结合起来,生成最终的HTML响应。

参考文档:

Django 模板

Django 模板 官方文档

模板配置文件选项设置 官方文档