文章目录:
目录
前言:
FBV和CBV的区别非常简单,这里我用的测试工具是Postman(没有也没关系,测试结果可以看我的结果),可以打开项目复制代码,跟着每一步学习,想要快速了解他们之间的区别,可以直接跳到总结
一.FBV和CBV分别是什么
在Django中,FBV(Function-Based Views)和CBV(Class-Based Views)是两种不同的视图编写方式。
二.内容:
实例代码:
View.py:
from django.shortcuts import render, HttpResponse
from django.views import View
class DateCBVViews(View):#CBV
def get(self,request,*args,**kwargs):
return HttpResponse("CBV_GET方法")
def post(self,request,*args,**kwargs):
return HttpResponse("CBV_POST方法")
def DateFBVViews(request):#FBV
if request.method == "GET":
return HttpResponse("FBV_GET方法")
else:
return HttpResponse("FBV_POST方法")
重点:这里FBV中判断请求方式根据def+请求的方式 例如:
def get(self,request,*args,**kwargs):这就是说明当请求方式是get时执行这个方法
CBV通过request.method拿到请求方式来通过if判断是什么请求来执行相应的代码
urls.py:
from django.urls import path
from api import views
urlpatterns = [
path('api/cbv/',views.DateCBVViews.as_view()),
path('api/fbv/',views.DateFBVViews),]
api是我项目代码的名称,根据自己的情况去改
终端运行python manage.py runserver,复制下面的URL,到测试软件测试
FBV的get请求:
CBV的get请求:
补充:post请求方法一样,这里我就省略了
总结:
总的来说,FBV更加灵活和简单,适用于简单的视图逻辑;而CBV提供了更多的功能和可重用性,适用于复杂的视图逻辑和需要结构化的场景。选择使用哪种视图编写方式取决于具体的需求和开发风格。