当前位置: 首页 > news >正文

Django中的FBV和CBV

一、两者的区别

1、在我们日常学习Django中,都是用的FBV(function base views)方式,就是在视图中用函数处理各种请求。而CBV(class base view)则是通过类来处理请求。

2、Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承、封装、多态)。所以Django在后来加入了Class-Based-View。可以让我们用类写View。

3、这样做的优点主要下面两种:

  1. 提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承);
  2. 可以用不同的函数针对不同的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"})

http://www.lryc.cn/news/216073.html

相关文章:

  • 信息泄露--
  • C#WPF文本格式化模式实例
  • 嵌入式云平台一些基础概念的理解
  • 【项目管理】生命周期风险评估
  • 力扣 搜索旋转排序数组 二分
  • 【软件测试】个人博客项目测试报告
  • Express框架开发接口之今日推荐等模块
  • UTONMOS:元宇宙顺势而上,重构数字化发展新形态
  • 【Nginx37】Nginx学习:SSL模块(一)简单配置与指令介绍
  • CompletableFuture 异步调用,获取返回值
  • excel利用正则匹配和替换指定内容
  • IPv4首部格式
  • 点云从入门到精通技术详解100篇-基于 3D 激光雷达的车厢冻煤存量检测
  • idea使用MyBatisX插件
  • Open3D(C++) 最小二乘拟合平面(间接平差法)
  • Linux中搭建coturn服务器
  • 【Proteus仿真】【Arduino单片机】SG90舵机控制
  • 程序员有哪些规避风险的合法兼职渠道?
  • OpenGL_Learn04
  • 【嵌入式】HC32F07X CAN通讯配置和使用配置不同缓冲器以连续发送
  • Linux的常见指令(一)
  • Jenkins 参数动态获取目录里面的内容
  • centos 搭建内网ntp时间服务器
  • FreeRTOS-消息队列的使用
  • 喜欢 Android 14 的 14 个理由
  • 图解系列--路由器和它庞大的功能
  • DBeaver 23.2.3发布,带来多项增强和修复
  • Proteus仿真--基于51单片机的按键选播电子音乐(仿真文件+程序)
  • node使用http模块
  • Golang Study 进阶