zoukankan      html  css  js  c++  java
  • Django rest-framework框架-CBV原理

    jdango中间件:
    class Test(View):
      def dispatch(self, request, *args, **kwargs):
        #第一种方法
        func = getattr(self,request.method.lower())#反射
        ret = func(request,*args,**kwargs)
        #第二种方法
        ret = super(Test,self).dispatch(request, *args, **kwargs)
        return ret

      def get(self, request,*args,**kwargs):
        return HttpResponse("GET")
      def post(self, request,*args,**kwargs):
        return HttpResponse("GET")
    CBV原理:
    - url->view方法->dispatch方法(反射执行其他:GET/POST/DELETE/PUT)

    继承dispatch:

    class Base(View):
             def dispatch(self, request, *args, **kwargs):
        print(before)
        ret = super(Base,self).dispatch(request, *args, **kwargs)
        print(after)
          return ret

    class Test(Base,View): #继承Base
      def  get(self, request,*args,**kwargs):
        return HttpResponse("GET")
      def post(self, request,*args,**kwargs):
        return HttpResponse("GET")

  • 相关阅读:
    HTML5 GeoLocation 地理定位
    HTML5 LocalStorage 本地存储
    JS-事件代理(委托)
    面向对象(封装、继承、多态)
    js图片预加载
    jQuery 事件
    svn无法验证
    Ext.data.Store(转)
    ExtJS实现Excel导出(转)
    <![CDATA[ ]]> 意思
  • 原文地址:https://www.cnblogs.com/kuku0223/p/11325861.html
Copyright © 2011-2022 走看看