Django中的FBV和CBV

我们在学习DRF之前呢我们需要了解一下django中的FBV和CBV,因为后续在DRF程序中会用到很多的CBV程序结构方法

FBV

FBV,即 func base views,函数视图,在视图里使用函数方法处理请求。

我们平时在写前后端不分离项目的时候,视图中的方法基本上都是使用的FBV方法,相对于易于理解的角度来讲,FBV确实是比较好理解一些,对于一些实现的功能相近,但是功能单一的项目来讲,基本是完全够使用的,基本的示例如下所示:

Django中的FBV和CBV

此方法对于结构简单的程序基本是没有问题,如果是在DRF中写后端API的时候面对几十上百个表的增删改查的时候就会变得异常复杂而又非常麻烦的,那么这个时候就需要用到CBV程序结构方法了

CBV

CBV,即 class base views ,类视图,就是在视图里使用类方法处理请求。

相对于FBV方法来讲,CBV的方法可以说是非常方便的解决了大规模程序编写复杂的情况,使用CBV写接口API的增删改查的时候,就用一个类方法就能够解决问题,而且CBV的类方法程序设计非常符合restful设计的标准,示例如下:

Django中的FBV和CBV

并且CBV的路由会多一个 as_view() 函数,django的url是将一个请求分配给可调用的函数的,而不是一个class,针对这个问题,CBV提供了一个 as_view() 类方法,调用这个方法,会创建一个类的实例,然后通过实例调用dispatch( )方法,dispatch( )方法会根据request的method的不同调用相应的方法来处理request ( 比如 get( ), post( )等)。

在url中CBV的路由应该这样写:
Django中的FBV和CBV

到这里FBV和CBV的简单介绍就结束了,加油吧

原文章地址