gpt4 book ai didi

django - APIView 类和 View 集类之间的区别?

转载 作者:行者123 更新时间:2023-12-03 13:27:51 24 4
gpt4 key购买 nike

有什么区别APIView 类(class)和 View 集类(class) ?
我正在关注 Django REST-framework官方文档。我认为它缺乏示例。

你能用一个合适的例子来解释上面的区别吗?

最佳答案

APIView 是您在定义 REST View 时通常会覆盖的最基本的类。你通常定义你的方法,比如 get、put、delete 和其他检查 ( http://www.cdrf.co/3.5/rest_framework.views/APIView.html )。使用 APIView,您可以定义您的 查看 然后将其添加到您的网址中,如下所示:

# in views.py
class MyAPIView(APIView):
... #here you put your logic check methods you can use
#in urls.py
url(r'^posts$', MyAPIView.as_view()), #List of all the posts

因为像获取/post/4、删除/post/4、获取所有帖子、更新和创建新帖子这样的事情非常常见,DRF 提供了 View 集。

但首先,在您了解 ViewSets 之前,让我告诉您还有一些通用类,它们在这方面做得非常好,但是您需要像我在 MyAPIView View 中所做的那样提供完整的 API 端点(再次了解更多信息,请查看 http://www.cdrf.co/http://www.django-rest-framework.org/)。因此,您必须定义自己的网址路径。

但是使用 ViewSets 您可以创建 View 集 这实际上合并了所有上述操作,而且您不需要定义 url 路径,您通常使用路由器为您创建路径:
 # views.py
class PostViewSet(ViewSet): # here you subclass Viewset check methods you can override, you have also ModelViewSet,...


# urls.py
router = routers.DefaultRouter()
router.register(r'post', PostViewSet, base_name='Post')

关于django - APIView 类和 View 集类之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41379654/

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