详解Django中的FBV和CBV对比分析
在学习Django过程中在views.py进行逻辑处理时接触到了两种视图的书写风格,FBV和CBV
FBV指functionbasedviews,即基于函数的视图
CBV指classbasedviews,即基于类的视图
基于类的视图相较于基于函数的视图可以更加便利的实现类的继承封装等。在日常使用的时候,二者的区别主要在于对于request的请求方法的处理方式
FBV
我们通过函数传入的request的method来判断客户端发起的是什么请求,并进行相应的操作,返回相应的数据。
deffbv(request): ifrequest.method=='GET': returnHttpResponse("GET") elifrequest.method=='POST': returnHttpResponse("POST") else: returnHttpResponse("OTHER")
在urls.py中,我们使用下面的格式来书写路径
path('test/',views.fbv),
CBV
我们在类中定义相应请求的方法,并在方法中实现相应的逻辑处理并返回相应的数据,这种基于类的视图很适用于restful风格的书写。
classCBV(View): @csrf_exempt defget(self): returnHttpResponse("GET") @csrf_exempt defpost(self): returnHttpResponse("POST") @csrf_exempt defput(self): returnHttpResponse("PUT")
在urls.py中,我们使用下面的格式来书写路径
path('test/',views.cbv.as_view()),
到此这篇关于详解Django中的FBV和CBV对比分析的文章就介绍到这了,更多相关DjangoFBV和CBV对比内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。