利用Django的视图类TemplateView将模板、视图与模板变量方便快速的整合在一起

TemplateView是Django提供的通用视图类之一,它允许您在不编写任何Python代码的情况下将模板与视图关联起来。下面是关于TemplateView类的一些介绍:

  1. 渲染模板:TemplateView负责渲染指定的模板并返回生成的HTML响应。您只需提供模板名称或路径即可,TemplateView将自动将其与相应的模板引擎关联起来。

  2. URL配置:您可以通过URL配置将TemplateView与特定的URL关联起来。这意味着当用户请求与该URL匹配的页面时,Django将自动调用TemplateView来处理请求。

  3. 上下文数据:您可以通过重写get_context_data方法向模板提供额外的上下文数据。这允许您在渲染模板之前向模板传递一些自定义的变量或对象。

  4. 类视图的优点:与函数视图相比,类视图具有许多优势。它们使代码更加模块化,易于维护和扩展。TemplateView作为类视图的一种形式,为开发人员提供了一个方便的方式来处理不需要太多逻辑处理的简单页面。

通过使用TemplateView,您可以轻松地将模板、视图、模板变量关联起来,而无需编写大量的重复代码,这对于构建简单的静态页面非常方便。

下面是一个简单的示例,展示如何使用TemplateView类:
E:\Python_project\P_001\myshop-test\myshop\app1\views_class.py 中的代码:

# -*- coding: utf-8 -*-

from django.views.generic import TemplateView


class TestTemplateView(TemplateView):
    # 设置模板文件
    template_name = "index.html"

    #  重写父类TemplateView中的get_context_data()方法
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        # 增加模板变量info
        context["info"] = "这里是昊虹君写的技术笔记-昊虹AI笔记"
        return context

E:\Python_project\P_001\myshop-test\myshop\templates\index.html 中的代码:

<div>
    这里是一个关于视图类TemplateView的示例
    <br>
    以下是通过重写父类TemplateView中的get_context_data()方法引入的新写的变量'info'的值
    <br>
   {{info}}
</div>

E:\Python_project\P_001\myshop-test\myshop\myshop\urls.py 中的代码:

from django.urls import path
from app1.views_class import TestTemplateView

urlpatterns = [
    path('test_templateview/', TestTemplateView.as_view()),
]

运行Django应用:

CD E:\Python_project\P_001\myshop-test\myshop
E:
python manage.py runserver 127.0.0.1:8010

访问下面的URL路径:

http://127.0.0.1:8010/test_templateview/

效果如下:
在这里插入图片描述
可见,通过视图类TemplateView很方便的把视图层中的模板和变量整合在了一起。

本篇博客代码github链接:
https://github.com/haohongcode/Django_learning/blob/main/2023-06/myshop-2023-06-23-01-TemplateView.zip

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值