Django FBV和CBV对比 详解Django中的FBV和CBV对比分析
沃特艾文儿~ 人气:0想了解详解Django中的FBV和CBV对比分析的相关内容吗,沃特艾文儿~在本文为您仔细讲解Django FBV和CBV对比 的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Django,FBV,CBV,下面大家一起来学习吧。
在学习Django过程中在views.py进行逻辑处理时接触到了两种视图的书写风格,FBV和CBV
FBV 指 function based views,即基于函数的视图
CBV 指 class based views,即基于类的视图
基于类的视图相较于基于函数的视图可以更加便利的实现类的继承封装等。在日常使用的时候,二者的区别主要在于对于request的请求方法的处理方式
FBV
我们通过函数传入的request的method来判断客户端发起的是什么请求,并进行相应的操作,返回相应的数据。
def fbv(request): if request.method == 'GET': return HttpResponse("GET") elif request.method == 'POST': return HttpResponse("POST") else: return HttpResponse("OTHER")
在urls.py中,我们使用下面的格式来书写路径
path('test/', views.fbv),
CBV
我们在类中定义相应请求的方法,并在方法中实现相应的逻辑处理并返回相应的数据,这种基于类的视图很适用于restful风格的书写。
class CBV(View): @csrf_exempt def get(self): return HttpResponse("GET") @csrf_exempt def post(self): return HttpResponse("POST") @csrf_exempt def put(self): return HttpResponse("PUT")
在urls.py中,我们使用下面的格式来书写路径
path('test/', views.cbv.as_view()),
加载全部内容