“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”