18 django django-views django-rest-framework
有什么区别APIView类和viewsets类?我正在关注Django REST框架官方文档.我认为它缺乏例子.
你能用一个合适的例子解释上述差异吗?
alp*_*iii 27
APIView是您在定义REST视图时通常会覆盖的最基本的类.您通常会定义诸如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
Run Code Online (Sandbox Code Playgroud)
因为某些事情比如获取/ post/4,删除/发布/ 4,获取所有帖子,更新和创建新帖子都是如此常见,DRF提供了Viewsets.
但在您了解Viewsets之前,我先告诉您,还有通用类,他们做的事情非常好,但您需要提供完整的API端点,就像我使用MyAPIView视图一样(再次获取更多信息,请查看http:// www.cdrf.co/或http://www.django-rest-framework.org/).所以你必须定义自己的网址路径.
但是使用ViewSets,您可以创建实际上合并所有上述操作的视图集,并且您也不需要定义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')
Run Code Online (Sandbox Code Playgroud)
Pra*_*pta 15
APIView允许我们定义与标准 HTTP 方法匹配的函数,如 GET、POST、PUT、PATCH 等。
视图集允许我们定义与常见 API 对象操作相匹配的函数,例如:LIST、CREATE、RETRIEVE、UPDATE 等。
视图集还用于编写逻辑以执行标准数据库操作并与数据库后端接口。并且通常用于现有的数据库模型来管理预定义的对象。
dPa*_*Pac 10
添加到 APIView 的函数与添加到 ViewSet 类的函数不同。
APIView:您为要在端点上支持的特定 HTTP 方法添加函数。例如:GET、POST、PUT、PATCH、DELETE
ViewSet:您将添加表示您将在典型 API 上执行的操作的函数。例如:列表、创建、检索、更新
| 归档时间: |
|
| 查看次数: |
9103 次 |
| 最近记录: |