在学习Django过程中在views.py进行逻辑处理时接触到了两种视图的书写风格,FBV和CBV
FBV 指 function based views,即基于函数的视图
CBV 指 class based views,即基于类的视图
基于类的视图相较于基于函数的视图可以更加便利的实现类的继承封装等。在日常使用的时候,二者的区别主要在于对于request的请求方法的处理方式
FBV
我们通过函数传入的request的method来判断客户端发起的是什么请求,并进行相应的操作,返回相应的数据。
1
2
3
4
5
6
7
|
def fbv(request):
if request.method = = 'GET' :
return HttpResponse( "GET" )
elif request.method = = 'POST' :
return HttpResponse( "POST" )
else :
return HttpResponse( "OTHER" )
|
在urls.py中,我们使用下面的格式来书写路径
1
|
path( 'test/' , views.fbv),
|
CBV
我们在类中定义相应请求的方法,并在方法中实现相应的逻辑处理并返回相应的数据,这种基于类的视图很适用于restful风格的书写。
1
2
3
4
5
6
7
8
9
10
11
12
|
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中,我们使用下面的格式来书写路径
1
|
path( 'test/' , views.cbv.as_view()),
|
到此这篇关于 详解Django中的FBV和CBV对比分析的文章就介绍到这了,更多相关Django FBV和CBV对比 内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/qq_44614115/article/details/113810380