gpt4 book ai didi

django - mixin 和泛型有什么区别?

转载 作者:行者123 更新时间:2023-12-04 12:43:01 26 4
gpt4 key购买 nike

我正在学习 Django Rest Framework。并且有两个概念在我看来几乎是一样的,并且用于不同的场景。rest_framework mixins我认为当我们使用 View 集时会使用它们。
rest_framework generics与 APIViews 一起使用。
这两个组件有什么区别?

最佳答案

genericsmixin模块确实不同,但它们是相互关联的。
Django Rest Framework (DRF) 将 ReSTful API/HTTP 动词行为与 Django 模型操作分开,并为每个类组织了一组抽象/基类。 ReSTful 功能位于 APIView , GenericAPIViewViewSetMixin . Model相关操作在mixin中实现模块。
然后,DRF 使用 Python 的多重继承和“mixin”模式,将它们组合成既可用又可扩展的更高级别的类。
通用 View 和具体 View ModelViewSet两者都继承自 APIView除了通过 mixin 编写功能之外类。

虽然与问题无关,但以下关于 ViewSets 的观察可能会有所帮助......
以下是 DRF 站点上对 ViewSets 的介绍,它可能会使事情看起来比实际情况更复杂......

A ViewSet class is simply a type of class-based View, that does not provide any method handlers such as .get() or .post(), and instead provides actions such as .list() and .create().

The method handlers for a ViewSet are only bound to the corresponding actions at the point of finalizing the view, using the .as_view() method.


而不是继承 ViewSet直接,在很多情况下,继承 ModelViewSet最有意义。并将其与 DefaultRouter 结合使用. ModelViewSet通过各种 mixin 获取方法处理程序类,以及 DefaultRouter提供“ Action ”功能映射。
结合起来,所有基本的 REST 操作都可以在给定的模型上执行,只需很少的代码。

关于django - mixin 和泛型有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55564534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com