详解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_exemptdef get(self):return HttpResponse("GET")@csrf_exemptdef post(self):return HttpResponse("POST")@csrf_exemptdef put(self):return HttpResponse("PUT")
在urls.py中,我们使用下面的格式来书写路径
path('test/', views.cbv.as_view()),
【详解Django中的FBV和CBV对比分析】到此这篇关于 详解Django中的FBV和CBV对比分析的文章就介绍到这了,更多相关Django FBV和CBV对比 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 热闹中的孤独
- JS中的各种宽高度定义及其应用
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- Android中的AES加密-下
- 放下心中的偶像包袱吧
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- Java|Java OpenCV图像处理之SIFT角点检测详解
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗