Router提供了一种简单,快速,集成的方式来定义一系列的urls

例子:

from rest_framework import routers
router = routers.SimpleRouter()
router.register('users',  UserViewSet)
router.register('account',  AccountViewSet)urlpatterns = router.ulrs

register()函数有两个必要参数:

prefix:      字首,用来表示一系列的urls

viewset:   viewset class

可选的参数:

base_name:   用来生成urls名字,如果viewset中没有包含queryset, base_name一定要有

上面的例子生成的url:

URL pattern: ^users/$                     Name: 'user-list'

URL pattern: ^users/{pk}/$              Name: 'user-detail'

URL pattern: ^accounts/$                Name: 'account-list'

URL pattern: ^accounts/{pk}/$         Name: 'account-detail'

----------------------------------------------------------------------------------

在routers中使用include

routers实例的urls属性表示一系列的urls.可以通过不同的方式来包含其他的urls

from rest_framework import routersrouter = routers.DefaultRouter()
router.register('users',  UserViewSet)
router.register('accounts',  AccountViewSet)urlpatters = pattern(url('^forget_password/$',  ForgetPasswordViewSet.as_view())
)urlpatterns += router.urls

你也可以使用include:

from rest_framework import routersrouter = routers.DefaultRouter()
router.register('users',  UserViewSet)
router.register('accounts',  AccountViewSet)urlpatters = pattern(url('^forget_password/$',  ForgetPasswordViewSet.as_view())url('^',  include(router.urls))
)

---------------------------------------------------------------------------------

额外的连接和操作

viewset定义了list, update, retrieve, create, update, destory, partial_update方法, 如果你有一些额外的操作,可以使用@detail_route 或者 @list_route来实现

from rest_framework.decorators import detail_routeclass UserViewSet(ModelViewSet):@detail_route(methods=['POST'])def set_password(self, request, pk=None):pass

它对应的url为: /users/{pk}/set_password         Name: user-set-password

如果你不想使用默认的url,你可以通过设置url_path参数来改变url

from rest_framework.decorators import detail_routeclass UserViewSet(ModelViewSet):@detail_route(methods=['POST'], url_path='change-password')def set_password(self, request, pk=None):pass

urlpattern:  /users/{pk}/change-password/$   Name: user-change-password

Django rest framework --- Routers相关推荐

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

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

  2. 03 Django REST Framework 视图和路由

    01-DRF中的request 在Django REST Framework中内置的Request类扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 比如,区别 ...

  3. Django REST framework的一些奇巧淫技(干货!!!)

    开始之前,假设你已经有Django和Django REST framework的一些基础了 mixins,ViewSet和routers配合使用 minxis的类有5种 CreateModelMixi ...

  4. Django REST framework 1

    Django REST framework Django REST framework官方文档:点击  中文文档:点击 安装djangorestframework:pip3 install djang ...

  5. django html5 关系,Django REST FrameWork中文教程5:关系和超链接API

    目前我们的API中的关系是用主键表示的.我们将通过使用超链接来提高我们API的内部联系. 为我们的API创建一个根路径 现在我们有'snippets'和'users'的路径,但是我们的API没有一个入 ...

  6. Django Rest Framework(一)

    一.什么是RESTful REST与技术无关,代表一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态转移". R ...

  7. Django REST framework【学习内容】

    快速入门 我们将创建一个简单的允许管理员用户查看和编辑系统中的用户和组的API. 项目设置 创建一个名为 tutorial 的新django项目,然后启动一个名为 quickstart 的新app. ...

  8. Django REST framework API开发

    REST 介绍 RESTful API 设计 实现API的两种方式 FBV 视图函数 urlpatterns = [url(r'^user/$', views.user),url(r'^user/ad ...

  9. Django REST framework 的快速入门教程

    我们将创建一个简单的API,让管理员用户能查看,修改系统中的用户和组. 项目搭建 创建一个新的Django项目,叫做 tutorial,然后开始一个新的app叫做 quickstart. # 创建项目 ...

最新文章

  1. find、sed、awk、grep命令总结
  2. Spark-Scala算子
  3. python创建一个字典、关键字为只包含字母的字符串_探究Python源码,终于弄懂了字符串驻留技术...
  4. Apache Dubbo 2.7.7 发布!升级 fastjson 等依赖!
  5. 给新手的 11 个 Docker 免费上手项目
  6. putty 远程linux桌面,Linux远程桌面工具Xming+Putty的搭建
  7. [Asp.Net Core轻量级Aop解决方案]AspectCore Project 介绍
  8. android FRAMENT的切换(解决REPLACE的低效)
  9. 支持树莓派的路由器系统_真香!国产64位树莓派系统上手评测
  10. Java XLSTransformer生成excel文件
  11. 学习模式上的记录之统计篇四 关于excel里添加趋势线和回归统计的R square数值不一致的情况
  12. PreferenceScreen
  13. 另类终端「GitHub 热点速览 v.22.15」
  14. 4款超好用的时间轴制作软件
  15. Win10自带超级截屏利器
  16. Photoshop的安装教程
  17. [CF106C]Buns
  18. Grammar-based construction 语法驱动的构造
  19. 出现这十种症状,说明你不适合做程序员
  20. 软件测试阶段划分以及测试分类

热门文章

  1. 虚拟盒子下装linux系统,eUnoBox(虚拟盒子) v3.14免费版
  2. 关于GNS3常用命令
  3. 手机保护壳让手机信号变更差?
  4. 推荐几款好用的手机编程APP!
  5. 华为od统一考试B卷【We Are A Team】C++ 实现
  6. python typing overload
  7. 使用手机软件Bluino Loader通过蓝牙编程、烧录Arduino
  8. win10添加自定义右键菜单
  9. 04.VisionPro工具说明
  10. 以太坊链上的二层(layer2)扩容方案Matic(Polygon)