对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息。

REST framework提供了两个router

  • SimpleRouter
  • DefaultRouter

1. 使用方法

1) 创建router对象,并注册视图集,例如

from rest_framework import routersrouter = routers.SimpleRouter()
router.register(r'books', BookInfoViewSet, base_name='book')

register(prefix, viewset, base_name)

  • prefix 该视图集的路由前缀
  • viewset 视图集
  • base_name 路由名称的前缀

如上述代码会形成的路由如下:

^books/$    name: book-list
^books/{pk}/$   name: book-detail

2)添加路由数据

可以有两种方式:

urlpatterns = [...
]
urlpatterns += router.urls

urlpatterns = [...url(r'^', include(router.urls))
]

2. 视图集中包含附加action的

【from rest_framework.decorations import action】

class BookInfoViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, GenericViewSet):queryset = BookInfo.objects.all()serializer_class = BookInfoSerializer@action(methods=['get'], detail=False)def latest(self, request):...@action(methods=['put'], detail=True)def read(self, request, pk):...

此视图集会形成的路由:

^books/latest/$    name: book-latest
^books/{pk}/read/$  name: book-read

3. 路由router形成URL的方式

1) SimpleRouter

2)DefaultRouter    【继承了simpleRouter类】

DefaultRouter与SimpleRouter的区别是,DefaultRouter会多附带一个默认的API根视图,返回一个包含所有列表视图的超链接响应数据。

【对于首页的匹配不同,输入127.0.0.1:8000时,simpleRouter是访问不到的】

RESTful之路由Routers相关推荐

  1. 7.9.9路由Routers

    7.9.9路由Routers 可以使用Routers来帮助我们快速实现路由信息 REST framework提供了两个router SimpleRouter DefaultRouter (1)使用方法 ...

  2. python Django Rest_Framework框架 视图集与路由Routers详解(图文并茂版)

    视图集与路由Routers详解 视图集 ViewSet视图集 代码实现 GenericViewSet视图集 代码实现 ModelViewSet视图集 ReadOnlyModelViewSet视图集 路 ...

  3. DRF路由Routers

    路由Routers 对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息. REST framework提供 ...

  4. DRF 框架总结 - 视图集路由 Routers

    视图集 ViewSet 使用视图集 ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update( ...

  5. vue路由 routers的写法:require用与不用

    vue路由的写法有很多种,这里我只说routers的写法,一种是compcomponent后面直接写路径,另一种是用require的方式,来看代码 import Vue from 'vue' impo ...

  6. Django之restframework的路由Routers

    对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息. REST framework提供了两个router ...

  7. Django之restframework中路由Routers

    对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息. REST framework提供了两个router ...

  8. Django REST framework(十)路由集routers的使用

    Django REST framework(九)-视图集ViewSet.GenericViewSet.ModelViewSet.ReadOnlyModelViewSet_simpleyako的博客-C ...

  9. 【GoWeb开发实战】Beego的路由控制

    Beego的路由控制 二.路由控制 web框架中,路由是重要的一环,对于beego的路由配置如何? 2.1 默认路由 让我们从入口文件main.go先分析起来吧: package mainimport ...

最新文章

  1. 使用Nucleus SE实时操作系统
  2. 在CentOS 6.9 x86_64上从源码安装xz命令的方法
  3. 新版直播其他问题QA
  4. python中的gui界面编程_python应用系列教程——python的GUI界面编程Tkinter全解
  5. android8组windows10,微软正式开放Win10新功能:在PC端运行Android应用
  6. 第三次学JAVA再学不好就吃翔(part77)--迭代器遍历
  7. 有人问我:程序员要供祖师爷的话该供谁?
  8. 算法训练 连续正整数的和
  9. 手动抛出异常_Java异常处理最佳实践及陷阱防范
  10. python参数传递_python参数的传递
  11. QT QTableWidget设置单元格不可编辑
  12. Java程序设计教程(第三版) 雍俊海 9.6 答案/代码
  13. WebService 服务 转
  14. 如何查找论文是否被SCI,EI检索
  15. 怎样一次删除许多WPS word中的文本框(及其内容)?简单方法
  16. VSCode 使用code runner
  17. 二十一世纪大学英语读写教程学习笔记(原文)——2 - Conversational Ballgames(对话风格与球类运动)
  18. python人工智能思想_从零开始学人工智能(1)--Python · 神经网络(零)
  19. 小米游戏本 七代 deepin 网卡ac 8265 wifi 驱动 安装
  20. wopus推荐码,购买立省五块钱!!

热门文章

  1. 谁说技术男不适合养猫!90后程序员2天做出猫咪情绪识别软件
  2. 豆瓣评分 9.4 的算法巨著,这本书带无数读者入门算法
  3. 如何提高模型性能?这四大方法值得尝试 | CSDN 博文精选
  4. 刚上线就报名2000人!8位大牛免费讲座,再不报名就满额了!
  5. 阿里AI攻克心血管识别技术,冠脉中心线提取论文入选国际医学影像会议
  6. 打破欧美垄断,国防科大斩获“航天界奥林匹克”大赛首冠
  7. “安利”一款debug神器:在AI面前,bug都不是事儿
  8. TensorFlow可以做什么?让Google Brain首席工程师告诉你
  9. Spring Boot + Redis 操作多种实现
  10. GitHub上最励志的计算机自学教程