惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
IT之家
IT之家
博客园 - Franky
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
S
SegmentFault 最新的问题
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
H
Help Net Security
V
V2EX
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
博客园 - 叶小钗
J
Java Code Geeks
博客园 - 【当耐特】
月光博客
月光博客
爱范儿
爱范儿
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件

碎言

不懂就别瞎掰掰:【程序员的常识】写的什么玩意? AI 辅助编程下的程序设计与代码编写 使用 Next.js 和 Tailwind CSS 构建可编辑和删除的 ToDo 待办事项应用 探索编程新境界:MarsCode 助你一臂之力 使用 Next.js 和 Tailwind CSS 搭建静态图片展示站点并部署到 Vercel AI 辅助编程:免费工具的优缺点及官网一览 GitHub push更新总是失败,写个python脚本解决 把博客从GitHub迁移到到了vercel ComfyUI 和 Flux.1 安装与使用教程 Flux.1 入门必知:硬件、环境、模型 Git项目的子文件夹中的内容无法同步到远程仓库的解决方法 blender流体Fluid使用中没有流体、流体穿模等一些问题的解决方法 博客聚合网站:积薪,竟然关闭了! blender日常使用中的一些技巧 虽然只有我自己在用,但还是更新了碎言博客的源代码, 与其在迷茫中困惑,不如在努力中前进 差点忘了我还有一个博客... 秧歌、博客和AI 终于熬到了新手上路 好久没有更新博客了。。。 老妈大腿骨骨折,最近一直在医院护理 Hello, September! Ubuntu开机自动启动Docker容器运行WordPress Docker 简单快速安装部署WordPress Docker下安装MySQL 加碘盐能防核辐射的话,还怕什么核战争? shields.io 一个简洁、一致、清晰的徽章 Ubuntu下使用root登录ssh的设置 GitHub Actions 构建、部署 Next.js项目 我又用回了"IE"--edge
Django 4.2 复习笔记(七)Django 模板(TEMPLATES)
J.sky · 2023-06-03 · via 碎言

作为一个网络框架,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 模板 官方文档

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