zoukankan      html  css  js  c++  java
  • Django Rest Framework 源码相关

    FBV和CBV区别

        CBV 内部dispatch 做了分发
        FBV没办法用类的继承,多态
        # DJango的View只做了CBV的分发
            def dispatch(self, request, *args, **kwargs):
                # GET POST
                # BookView().get
                if request.method.lower() in self.http_method_names:
                    handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
                else:
                    handler = self.http_method_not_allowed
                return handler(request, *args, **kwargs)

    APIView 和View的区别

        -- APIView继承了View
            -- 重写了as_view方法
                -- 豁免csrf
            --  def dispatch(self, request, *args, **kwargs):
                    self.args = args
                    self.kwargs = kwargs
                    
                    # 重新封装request
                    # 新的request变成 Request的实例化对象
                    # 旧的request变成了_request
                    request = self.initialize_request(request, *args, **kwargs)
                    self.request = request
                    。。。。。。
            --  def initialize_request(self, request, *args, **kwargs):
                    parser_context = self.get_parser_context(request)
    
                    return Request(
                        request,
                        parsers=self.get_parsers(),
                        authenticators=self.get_authenticators(),
                        negotiator=self.get_content_negotiator(),
                        parser_context=parser_context
                    )
            -- Class Request(object):
                    self._request = 旧的request
                    def query_params(self):
                        return self._request.GET
                    def data(self):
                        return post请求的数据
    幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
  • 相关阅读:
    selenium笔记
    gbase笔记
    oracle向gbase数据迁移须知
    字符串表达式的计算
    Struts2的安装
    JSP+MySQL中文乱码
    HTML:<input type="text">文本框不可编辑的方式
    HTML中使用<input>添加的按钮打开一个链接
    AS3.0:给图片添加滤镜模糊与斜角效果
    SQLServer 2008以上误操作数据库恢复方法—日志尾部备份
  • 原文地址:https://www.cnblogs.com/TodayWind/p/13886787.html
Copyright © 2011-2022 走看看