Django——CBV

  • 基本使用


    与基于函数的视图相比具有一定的差异和优势:
    提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
    可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性
    
    
    内建的基于类的视图的层次结构:
    基本视图:view 、TemplateView、RedirectView
    通用显示视图:DetailView、ListView
    通用编辑视图:FormView、CreateView、 UpdateView、DeleteView
    通用日期视图: ArchiveIndexView、YearArchiveView、 MonthArchiveView、 WeekArchiveView
     DayArchiveView、TodayArchiveView、DateDetailView
    基于类的视图mixins
    简单的mixins:ContextMixin、TemplateResponseMixin
    单个对象mixins:SingleObjectMixin、SingleObjectTemplateResponseMixin
    多个对象混合:MultipleObjectMixin、MultipleObjectTemplateResponseMixin

    类视图的基本使用
    所有类视图都继承自Django提供的父类View,可以使用from django.views import View或from
    django.views.generic import View来导入父类View。
    
    
    #views.py
    from django.urls import reverse
    from django.views import View
    from django.http import HttpResponse
    from django.shortcuts import render, redirect
    class Register(View):
     # 处理GET请求
     def get(self,request, *args, **kwargs):
     return render(request,"App/register.html")
    # 处理POST请求
     def post(self, request, *args, **kwargs):
     # 注册业务处理
     ...
     return redirect(reverse("App:login"))

    路由注册
    urlpatterns = [
     # 函数注册
     path("register/",views.register,name='register')
     # 类视图注册
     path(r'register/',views.RegisterView.as_view(),name='register')
    ]
发布了199 篇原创文章 · 获赞 6 · 访问量 2424

猜你喜欢

转载自blog.csdn.net/piduocheng0577/article/details/105036144