首页 > 编程语言 >FBV和CBV的区别(源码分析)

FBV和CBV的区别(源码分析)

时间:2023-04-16 21:47:49浏览次数:42  
标签:FBV 源码 CBV import UserView view

FBV和CBV源码分析

  1. FBV直接调用user方法执行业务代码

  1. CBV相当于在FBV上面封装了一层
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
    path('users/', views.UserView.as_view()),
]
from django.views import View

class UserView(View):
    def get(self, request, *args, **kwargs):
        return JsonResponse({"code": 1000, "data": "xxx"})

    def post(self, request, *args, **kwargs):
        return JsonResponse({"code": 1000, "data": "xxx"})

下面来做一下源码分析:

第一步: 当请求过来的时候. view.UserView会找到父类View中的as_view()方法.

第二步: 调用到view()方法, 将类赋值给self, 并调用dispatch方法:

第三步: 执行dispatch()中getattr找到类的绑定对象UserView.method -> 直接调用method对应方法

标签:FBV,源码,CBV,import,UserView,view
From: https://www.cnblogs.com/Maxs-message/p/17324157.html

相关文章

  • Tomcat长轮询原理与源码解析
    系列文章目录和关于我零丶长轮询的引入最近在看工作使用到的diamond配置中心原理,发现大多数配置中心在推和拉模型上做的选择出奇的一致选择了基于长轮询的拉模型基于拉模型的客户端轮询的方案客户端通过轮询方式发现服务端的配置变更事件。轮询的频率决定了动态配置获取的实......
  • vue2源码-六、根据render函数生成vnode
    根据render函数生成vnode上文介绍上面已经将模板编译成了render函数,下面就要使用render函数,从而完成渲染的操作:首先,根据render函数生成虚拟节点;然后根据虚拟节点+真实数据生成真实节点。实现mountComponent方法,完成渲染虚拟节点生成封装vm._render方法。Vue.proto......
  • DAPLink源码生成Keil工程并编译成功——笔记(实践篇)
    本文介绍使用DAP源码生产Keil工程的步骤。一、前期准备工作以下1~4为步骤:1.安装Python3(https://www.python.org/downloads/),并添加至路径PATH,此处忘截图了,总之看见pip、alluser、addtoPATH之类的就勾选。(网上也有些帖子说暂时不支持Python3要用Python2.7的,本人实测Pyt......
  • eureka源码简单剖析-服务端(服务续约接口)
           ......
  • eureka源码简单剖析-服务端(服务注册接口-作用是客户端的注册服务)
    本部分讲的是客户端的一些服务注册要注册中心,就是服务的提供者将服务注册到注册中心,方便消费者拿到需要的服务  peer是集群的模式 然后看下这个super.register(info,leaseDuration,isReplication);   日常学习使用的一般是eureka单机模式,企业使用都是eureka......
  • r0tracer 源码分析
    使用方法修改r0tracer.js文件最底部处的代码,开启某一个Hook模式。functionmain(){Java.perform(function(){console.Purple("r0tracerbegin...!")//0.增加精简模式,就是以彩虹色只显示进出函数。默认是关闭的,注释此行打开精简模式。//is......
  • eureka源码简单剖析-服务端(服务接口暴露策略)
    下面来看下服务接口暴露的策略。其中服务端使用了Jersey框架,而Jersey框架是一个发布restful风格接口的框架,类似我们使用的springmvc, 然后下面看下jersey部分    以上就是服务接口暴露的相关策略部分......
  • Visual Studio Code开发常用的工具栏选项,查看源码技巧以及【vscode常用的快捷键】
    一、开发常用的工具栏选项1、当前打开的文件快速在左侧资源树中定位:其实打开了当前的文件已经有在左侧资源树木定位了,只是颜色比较浅2、打开太多文件的时候,可以关闭3、设置查看当前类或文件的结构OUTLINE相当于idea查看当前类或接口的结构Structure二、查看......
  • OPCUA实践之winnt服务源码分享
    前言孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说:“对呀,对呀!......OPCUA,你用过么?”大家好,我是44岁的大龄程序员码农阿峰。离开上一个项目近半年了,这时当时在项目做的3个winnt服务,算是OPCUA的初次使用,代码并没有什么出彩的地方,却是能正常运行,而且工作了近1年的时......
  • IDEA进入一个类的源码
    进入一个类的源码按住Ctrl后单击类名即可进入类的源码单击Structure即可看到类里的方法......