• 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请求的数据
    幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
  • 相关阅读:
    CF850A Five Dimensional Points 题解
    AT3963 [AGC024F] Simple Subsequence Problem 题解
    jquery事件绑定机制
    前端初级词汇
    一个checkbox细节处理方式(checkbox与后面的文字对其)
    转 CSS hack:针对IE6,IE7,firefox显示不同效果
    想到的几点页面规范
    jQuery UI Dialog:Demo2:实用技巧
    zindex
    递归示例
  • 原文地址:https://www.cnblogs.com/TodayWind/p/13886787.html
Copyright © 2020-2023  润新知