通用视图与APIView、视图集、模型视图集

2024-05-23 20:08:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始学习Django Rest框架,现在开始学习APIView、ViewSet、ModelViewSet和GenericView的4个概念。它们之间的区别是什么?在RESTAPI的开发中使用哪一个更有效?为什么


Tags: django框架restrestapi概念区别apiviewmodelviewset
1条回答
网友
1楼 · 发布于 2024-05-23 20:08:23

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

  1. 一个类中的多个动作和基本积垢->ViewsetModelViewSetReadOnlyModelViewSet最有用)

  2. 对模型类的特定操作->Generic ViewsRetrieveModelMixinListAPIViewUpdateModelMixinDestroyModelMixinCreateModelMixin

  3. 如果要写入所有createupdate。。。方法您自己可以使用APIView并将它们写入getpostput、。。。方法(APIViewGenericAPIView之间的区别在于,您不能在类中使用某些内置方法,如querysetserializer_class、…)

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

  • 大多数情况下,您必须使用通用视图编写API&;如果您学习了所有的通用APIView最佳实践,它将具有强大的功能,并且您的应用程序将非常干净、可读和可扩展
  • 购买如果你有简单的模型,你可以使用Viewset

I use GenericAPIView in normal APIs & use APIView in the custom ones (like most of APIs in Admin Panel)

相关问题 更多 >