# 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和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)