[drf]源码继承关系

# drf继承关系

View
APIView
    as_view:
        执行父类的as_view
        调用dispatch
    dispatch
        init_request
            request.queryparams
            request.Data
        init
            内容协商/版本
            认证/授权/限流

GenericAPIView
    get_queryset
    get_serializerclass
    过滤/分页

viewset
    重写as_view方法

drf系列参考

# drf和orm耦合度太高? 可以继承viewsets.ViewSet类.逃脱了gennericapiview
class ViewSet(ViewSetMixin, views.APIView):pass

class GetTaskIpLogViewSet(viewsets.ViewSet):

    def list(self, request, *args, **kwargs):
        data = get_task_ip_log("cat /etc/hosts")
        return Response(data)

猜你喜欢

转载自www.cnblogs.com/iiiiiher/p/12006623.html