前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django REST Framework-视图集类型(一)

Django REST Framework-视图集类型(一)

原创
作者头像
玖叁叁
发布2023-04-25 09:36:01
3790
发布2023-04-25 09:36:01
举报
文章被收录于专栏:玖叁叁

在 Django REST Framework 中,视图集(Viewset)是一种方便的 API 开发方式,它将视图(View)和序列化器(Serializer)组合起来,提供了一组标准的 API 操作(列表、创建、更新、删除、详情等),可以大大简化 API 的编写和维护工作,提高开发效率和代码可读性。

视图集可以分为以下几种类型:

ModelViewSet

ModelViewSet 是最常用的视图集类型,它继承了 GenericAPIViewModelMixin,可以自动生成常用的 CRUD 操作,包括列表查询、创建、更新、删除、详情查询等。

我们可以通过设置 queryset 属性指定数据查询集,通过设置 serializer_class 属性指定数据序列化器,来自动实现 API 的基本操作。例如,我们可以在 views.py 文件中定义一个 BookViewSet 视图集:

代码语言:javascript
复制
from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer

class BookViewSet(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

在这个例子中,我们使用 viewsets.ModelViewSet 创建一个视图集,并将 Book 模型的查询集设置为 Book.objects.all(),将 BookSerializer 序列化器设置为默认序列化器。

ReadOnlyModelViewSet

ReadOnlyModelViewSet 继承自 GenericAPIViewReadOnlyModelMixin,提供了只读的操作,包括列表查询和详情查询。

ModelViewSet 不同的是,ReadOnlyModelViewSet 不支持创建、更新和删除操作,适用于只读的数据接口场景。例如,我们可以在 views.py 文件中定义一个 AuthorViewSet 视图集:

代码语言:javascript
复制
from rest_framework import viewsets
from .models import Author
from .serializers import AuthorSerializer

class AuthorViewSet(viewsets.ReadOnlyModelViewSet):
    queryset = Author.objects.all()
    serializer_class = AuthorSerializer

在这个例子中,我们使用 viewsets.ReadOnlyModelViewSet 创建一个只读的视图集,并将 Author 模型的查询集设置为 Author.objects.all(),将 AuthorSerializer 序列化器设置为默认序列化器。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ModelViewSet
  • ReadOnlyModelViewSet
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档