[Django] Django(六) View基础之类视图

本文介绍了Django中的类视图,重点讨论了ListView和DetailView的使用。ListView用于显示对象列表,DetailVew展示单个对象详情。通过覆盖属性如model、queryset、template_name和context_object_name,可以定制视图行为。类视图通过方法如get_queryset()和get_object()处理HTTP请求,增强了代码的复用性。
摘要由CSDN通过智能技术生成

概述

Django(四) View基础之函数视图中,通过在app/views.py中定义一个函数来表示一个视图,获取用户的请求并进行响应,这种方式的最大缺点是重用性差,因此,除了通过函数来定义一个视图之外,还可以通过类来定义一个视图。

和函数视图相比,基于类的视图有以下两个特点:

  • 1.HTTP请求通过特定的方法处理,不需要通过条件语句判断。比如如果是函数视图:
from django.http import HttpResponse

def my_view(request):
    if request.method == 'GET':
        # <view logic>
        return HttpResponse('result')

如果使用类视图:

from django.http import HttpResponse
from django.views import View

class MyView(View):
    def get(self, request):
        # <view logic>
        return HttpResponse('result')
  • 2.由于Python支持多继承,通过mixins可以增强复用性。

Django中提供了多种通过视图API,如TemplateView、RedictView、ListView,它们的父类都是View,通过继承这些类,覆盖类中的属性可以提供新的值或方法。

由于在请求时,url解析器会将请求和参数发送到一个方法中进行。因此,每个类视图都带有一个as_view()方法,用于将类视图转换为一个可调用函数,在配置url时需要使用as_view()方法:

urlpatterns = [
    path(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值