海淀石家庄网站建设,网站编程赚钱,中小企业解决方案,宁国新站seo一、两者的区别
1、在我们日常学习Django中#xff0c;都是用的FBV#xff08;function base views#xff09;方式#xff0c;就是在视图中用函数处理各种请求。而CBV#xff08;class base view#xff09;则是通过类来处理请求。
2、Python是一个面向对象的编程语言…一、两者的区别
1、在我们日常学习Django中都是用的FBVfunction base views方式就是在视图中用函数处理各种请求。而CBVclass base view则是通过类来处理请求。
2、Python是一个面向对象的编程语言如果只用函数来开发有很多面向对象的优点就错失了继承、封装、多态。所以Django在后来加入了Class-Based-View。可以让我们用类写View。
3、这样做的优点主要下面两种
提高了代码的复用性可以使用面向对象的技术比如Mixin多继承可以用不同的函数针对不同的HTTP方法处理而不是通过很多if判断提高代码可读性。
二、示例 1、urls.py
from django.urls import path
from app01 import viewsurlpatterns [# path(admin/, admin.site.urls),#FBV路由写法基于函数path(auth/, views.auth),#CBV写法基于类的路由写法path(user/,views.UserView.as_view()),
2、views.py
from django.http import JsonResponse
from django.views import View#FBV的写法
def auth(request):if request.method GET:return JsonResponse({status:True,message:GET})elif request.method POST:return JsonResponse({status: True, message: POST})return JsonResponse({status:True,message:...})#CBV写法
class UserView(View):def get(self,request):return JsonResponse({status:True,message:get})def post(self,request):return JsonResponse({status:True,message:post})def put(self,request):return JsonResponse({status: True, message: put})def delete(self,request):return JsonResponse({status: True, message: delete})