Django基础教程(111)Django基于类的视图之使用通用类视图:告别“搬砖”!Django通用类视图:你的“魔法卷轴”,少写代码多撩妹

嘿,Django的玩家们,是不是又在视图里写着仿佛“俄罗斯套娃”一样的代码?从数据库取数据、塞进模板、渲染返回……一遍又一遍,感觉自己像个无情的代码搬运工?

别慌!今天咱就来聊聊Django里的“秘密武器”——基于类的通用视图,我更喜欢叫它们 “魔法卷轴” 。为啥?因为你不用再从头搓火球术(写重复代码)了,直接摊开卷轴(继承一个类),念出咒语(设置几个属性),嘭!一个功能完备的页面就出来了!

一、 为啥要“弃暗投明”,从函数视图转向类视图?

想象一下,你是个铁匠(程序员),之前每打一把剑(写一个视图),都得从烧炉子(处理HTTP方法)开始,抡大锤(写业务逻辑),最后打磨开刃(返回HttpResponse)。累不累?

函数视图的“苦”日子:

# 一个简单的文章列表视图,是不是很眼熟?
from django.shortcuts import render
from .models import Article

def article_list(request):
    if request.method == 'GET':
        articles = Article.objects.filter(status='published').order_by('-publish_date')
        return render(request, 'blog/article_list.html', {'article_list': articles})
    # 万一要处理POST呢?还得再加if...头疼!

看到了吗?光是取个列表,就得好几行。如果再来个分页、权限控制,这函数就得“膨胀”成一座小山。

基于类的视图(CBV),它天生就是OOP(面向对象编程)的贵族。它把不同的HTTP方法(GET, POST)自动分发到对应的类方法里(比如 get()post()),结构清晰得像一本整理好的说明书。

那么,通用类视图(GCBV),就是Django官方基于CBV,为我们提前写好的、解决特定场景的“标准说明书模板”或者说“魔法卷轴”。

二、 “魔法卷轴”库:认识你的工具箱

Django的GCBV主要存放在django.views.generic里,它们各有神通,主要分四大门派:

  1. 列表派(List View):擅长展示一堆东西,比如文章列表、商品列表。核心是 ListView
  2. 详情派(Detail View):擅长展示一个东西的详细信息,比如文章详情、用户资料。核心是 DetailView
  3. 创造派(Create View):擅长创建一个新东西
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值