【Django】“CBV”之TemplateView,ListView, DetailView,动态添加属性

本文介绍了Django中的Class Based Views (CBV),包括TemplateView、ListView和DetailView的使用,强调了它们在前后端分离中的作用,并展示了如何动态添加属性,如为模型数据添加`wechat`属性和页面渲染数据添加`qq`属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“CBV”之TemplateView,ListView, DetailView,动态添加属性

CBV(class based view)

  • 可以用作前后端分离,不使用渲染,解耦V与T之间的耦合
  • cbv 可看作是把类来作为视图函数调用 “.as_view()”
  • view 看作是逻辑控制器,操控数据模型(Model)与视图模板(Templates)之间的逻辑

TemplateView

  • 对比FBV和CBV的写法:一个是函数,一个是类
  • class继承TemplateView,可简写GET方法:template_name = “xxx.html”
    在这里插入图片描述

ListView

  • view class的功能等同于下面(橙色框中)视图函数的功能

在这里插入图片描述

  • 注意路由规则写法不同

在这里插入图片描述

DetailView

  • 顾名思义,作用于数据模型中的一个对象

在这里插入图片描述

  • 下面 “?P<uid>” 就是上面的"pk_url_kwarg"

在这里插入图片描述

动态添加属性

  • 可以给模型数据user 动态添加属性“wechat”,值为“hello”
  • 也可以给页面动态添加渲染数据“qq”,值为 “1234”
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值