前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Django-DRF | ViewSet

Django-DRF | ViewSet

作者头像
小团子
发布2020-01-16 11:17:03
发布2020-01-16 11:17:03
50500
代码可运行
举报
文章被收录于专栏:数据云团数据云团
运行总次数:0
代码可运行

Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

代码语言:javascript
代码运行次数:0
运行
复制
from rest_framework import viewsets
一、使用视图集 ViewSet,可以将一系列逻辑相关的动作放到一个类中:

list() 提供一组数据

retrieve() 提供单个数据

create() 创建数据

update() 更新保存数据

destory() 删除数据

二、ViewSet 视图集类不再实现get()、post()等方法,而是实现动作 action,如 list() 、create() 等。

视图集只在使用as_view()方法的时候,才会将action动作与具体请求方式对应上

代码语言:javascript
代码运行次数:0
运行
复制
class BookViewSet(viewsets.ViewSet):
        def list(self, request):
            ...
        def retrieve(self, request, pk=None):

设置路由

代码语言:javascript
代码运行次数:0
运行
复制
urlpatterns = [
    url(r'^books/$', BookViewSet.as_view({'get':'list'}),
    url(r'^books/(?P<pk>\d+)/$', BookViewSet.as_view({'get': 'retrieve'}),
]

三、action 属性

在视图集中, 可以通过 action 对象属性来获取当前请求视图集的action的动作是谁

代码语言:javascript
代码运行次数:0
运行
复制
def get_serializer_class(self):
     if self.action == 'create':
         return BookCreateSerializer
     else:
         return BookListSerializer
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、使用视图集 ViewSet,可以将一系列逻辑相关的动作放到一个类中:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档