zoukankan      html  css  js  c++  java
  • CBV vs FBV

    一、路由绑定

    FBV路由绑定

    urlpatterns = [
        # 1)项目启动,将test函数地址绑定给/test/路由
        # 2)请求/test/访问后台,后台就会调用绑定的test函数
        url(r'^test/$', views.test),

    CBV路由绑定

    urlpatterns = [  
        # 1)项目启动,将as_view()函数执行结果返回的view函数地址绑定给/test/路由
        # 2)请求/test/访问后台,后台就会调用绑定的view函数
        # 3)view函数会将请求交给dispatch方法完成分发,分发(反射)给视图类的不同方法处理请求
        url(r'^test/$', views.Test.as_view()),
    ]

    二、业务处理:

    FBV每一个接口都会对应一个函数来响应请求
    
    CBV可以将一个资源的增删改查所有操放在一个类中管理,在内部再分方法逐一处理 (高内聚低耦合:六个接口和一个类有关,但都能在类内部处理)

    继承View的目的

    i)继承as_view()方法,完成路由的配置
    ii)继承dispath()方法,完成请求分发
    注:如果自己写as_view()和dispath()方法,自定义视图类可以不用继承任何类的
    from django.http import JsonResponse from django.views import View class Test(View): def get(self, request, *args, **kwargs): return JsonResponse('cbv ok', safe=False) """

    补充知识点:

    下面三个View其实是同一个类
    from django.views import View
    from django.views.generic import View
    from django.views.generic.base import View
  • 相关阅读:
    linux下互相传文件的快捷方法
    c语言学习笔记.内存管理.
    c语言学习笔记.结构体.
    格雷码
    c语言学习笔记.指针.
    c语言学习笔记.数组.
    c语言学习笔记.关键字.存储类型关键字等
    leetcode.C.4. Median of Two Sorted Arrays
    Verilog笔记.6.FIFO
    Verilog笔记.5.同步、异步
  • 原文地址:https://www.cnblogs.com/baohanblog/p/12323979.html
Copyright © 2011-2022 走看看