1 / 4
文档名称:

Django的FBV与CBV模式.docx

格式:docx   大小:38KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Django的FBV与CBV模式.docx

上传人:simple 2021/7/18 文件大小:38 KB

下载得到文件列表

Django的FBV与CBV模式.docx

文档介绍

文档介绍:Django的FBV与CBV模式
FBV 是 function based views 的英文缩写,顾名思义代表的是基于函数的视图,在以前的我们编写的代码中,在 文件编写的都是这类视图函数,相信大家对这种编写视图函数的方式已经比较的熟悉。在本节我们将介绍另一种吧编写视图函数的方式,即 CBV (class based views)基于类的视图函数。
你可能会问为什么又突然介绍 CBV,刚熟悉了 FBV 的模式,那么我只能告诉你学****技术一个循序渐进的过程,CBV 的模式相比 FBV 还是略显复杂,所以只有掌握了 FBV 模式,才能够更好的理解 CBV模式。那么 这两者到底有什么不同之处呢,使用方法又有什么区别呢?下面就让我们一起来学****新知识吧。
1. CBV与FBV的区别
我们知道 Python 是一个门面向对象的编程语言。如果我们只用函数来编写视图函数,那么就会造成很多面向对象的优点无法利用起来,比如说封装、继承、多态等。这也是 Django 之所以加入了 CBV 模式的原因。它可以让开发者使用类的形式去编写 View 视图函数。对于使用 CBV 模式优势总结了如下几点:
CBV 将整个视图函数的逻辑拆成了类下的多个函数,依靠函数调用来实现完整的逻辑;
提高代码的可复用性,更加灵活,让开发者使用面向对象的技术,比如多继承、多态等;
可以用不同的函数针对不同的 HTTP 方法处理,而不是通过很多 if 判断,提高代码可读性。
当然 CBV 也不是万能的,当继承关系变得很复杂,亦或是代码不是特别规整的时候,这时要去找某一个函数到底是被哪一个父类重载也是一个麻烦事。此时使用 FBV 模式就变的很方便,所以还是要理解它们两者的区别,在合适的场景选用合适的方法,不能把其中某一种模式视为唯一。总体上来说 CBV 的模式,在实际的开发工作中使用的相对较多,所以我们要掌握这种编写 view 视图函数的模式。
2. FBV与CBV实际应用
下面就让我们实际应用一下 CBV 这种基于类的视图函数,我们 FBV 与 CBV 的方式编写如下视图函数:
#使用FBV方式
def login_fbv(request):
if =="GET":
return HttpResponse("登录成功")
elif =="POST":
pass
#使用CBV方式
from import View
class LoginView(View): #需要继承自View类
def get(self,request):
return HttpResponse("登录成功")
def post(self,request):
pass
1) as_view()方法创建类实例
首先 CBV 需要继承自 View 类所以需要使用如下方式进行导包
from import View
在 FBV 模式中 Django 的 URL 将一个请求分配给可调用的函数的即 login_fbv(),那么基于类的视图函数这种方式就不再适用了,UR