【发布时间】:2021-08-01 05:22:49
【问题描述】:
我刚开始学习 Django Rest Framework,现在我了解了 4 个概念 APIView、Viewsets、Modelviewsets、GenericView。它们之间有什么区别,哪一个在开发REST API时使用效率更高,为什么?
【问题讨论】:
-
顺便说一句,如果有帮助,您可以接受我的回答。
标签: python django django-rest-framework
我刚开始学习 Django Rest Framework,现在我了解了 4 个概念 APIView、Viewsets、Modelviewsets、GenericView。它们之间有什么区别,哪一个在开发REST API时使用效率更高,为什么?
【问题讨论】:
标签: python django django-rest-framework
没有标准,但您可以从这个简单的策略开始:
一个类和基本 CRUD 中的几个操作 ---> Viewset(ModelViewSet 和 ReadOnlyModelViewSet 最有用)
对模型类的具体操作 ---> Generic Views (RetrieveModelMixin, ListAPIView, UpdateModelMixin, DestroyModelMixin, CreateModelMixin)
如果您想自己编写所有create、update、...方法,您可以使用APIView并将它们写入您的get、post、put、...方法中( APIView 和 GenericAPIView 之间的区别只是你不能在你的类中使用一些内置方法,比如 queryset, serializer_class, ...)
如果您想从头开始编写所有内容,您可以在 function base 中编写您的 api
我在普通 API 中使用 GenericAPIView 并在自定义 API 中使用 APIView(就像管理面板中的大多数 API)
【讨论】:
Viewset 可以帮助我们更好地注册路由。当你使用GenericView并且需要编写自定义函数时,需要考虑这些函数如何注册路由。