首页 > 解决方案 > 通用视图 vs APIView vs Viewsets, vs ModelViewsets

问题描述

我刚开始学习 Django Rest Framework,现在我了解了 APIView、Viewsets、Modelviewsets、GenericView 4 个概念。它们之间有什么区别,哪一个在开发 REST API 时使用效率更高,为什么?

标签: pythondjangodjango-rest-framework

解决方案


没有标准,但您可以从这个简单的策略开始:

  1. 一类中的几个动作和基本的 CRUD --->视图集ModelViewSet并且ReadOnlyModelViewSet最有用)

  2. 对模型类的特定操作 --->通用视图( RetrieveModelMixin, ListAPIView, UpdateModelMixin, DestroyModelMixin, CreateModelMixin)

  3. 如果您想自己编写所有create, update, ... 方法,您可以在您的, , , ... 方法中使用APIView和编写它们( &之间的区别只是您不能在类中使用某些内置方法,例如, , ... )getpostputAPIViewGenericAPIViewquerysetserializer_class

  4. 如果您想从头开始编写所有内容,您可以在其中编写您的 apifunction base

  • 大多数情况下,您必须使用通用视图编写 api,如果您学习了所有通用 APIView 最佳实践,它具有强大的功能,您将变得如此干净、可读和可扩展
  • 如果您有可以使用 Viewset 的简单模型,请购买

我在普通 API 中使用 GenericAPIView 并在自定义 API 中使用 APIView(就像管理面板中的大多数 API)


推荐阅读