Django rest framework --- Routers
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相关推荐
- Django REST framework(十)路由集routers的使用
Django REST framework(九)-视图集ViewSet.GenericViewSet.ModelViewSet.ReadOnlyModelViewSet_simpleyako的博客-C ...
- 03 Django REST Framework 视图和路由
01-DRF中的request 在Django REST Framework中内置的Request类扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 比如,区别 ...
- Django REST framework的一些奇巧淫技(干货!!!)
开始之前,假设你已经有Django和Django REST framework的一些基础了 mixins,ViewSet和routers配合使用 minxis的类有5种 CreateModelMixi ...
- Django REST framework 1
Django REST framework Django REST framework官方文档:点击 中文文档:点击 安装djangorestframework:pip3 install djang ...
- django html5 关系,Django REST FrameWork中文教程5:关系和超链接API
目前我们的API中的关系是用主键表示的.我们将通过使用超链接来提高我们API的内部联系. 为我们的API创建一个根路径 现在我们有'snippets'和'users'的路径,但是我们的API没有一个入 ...
- Django Rest Framework(一)
一.什么是RESTful REST与技术无关,代表一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态转移". R ...
- Django REST framework【学习内容】
快速入门 我们将创建一个简单的允许管理员用户查看和编辑系统中的用户和组的API. 项目设置 创建一个名为 tutorial 的新django项目,然后启动一个名为 quickstart 的新app. ...
- Django REST framework API开发
REST 介绍 RESTful API 设计 实现API的两种方式 FBV 视图函数 urlpatterns = [url(r'^user/$', views.user),url(r'^user/ad ...
- Django REST framework 的快速入门教程
我们将创建一个简单的API,让管理员用户能查看,修改系统中的用户和组. 项目搭建 创建一个新的Django项目,叫做 tutorial,然后开始一个新的app叫做 quickstart. # 创建项目 ...
最新文章
- js符号转码_js传特殊字符到controller (java)的转码问题
- 爱奇艺谢丹铭:用AI让创作者提升效率,让消费者简单快乐丨MEET2021
- 【mysql】table中添加列
- 免费当天澳洲运营商全天下载量达1841TB
- 循环比赛日程表(信息学奥赛一本通-T1325)
- 信息学奥赛C++语言:输出学生序号与成绩
- yolov3代码详细解读
- Java学习系列(十二)Java面向对象之序列化机制及版本
- 自学python推荐书-学习python求推荐一波书籍?
- JAVA POI处理WORD
- LINUX中文件的移动,Linux中文件移动文件的操作命令为 ()
- IDEA和webstorm破解方式
- Linux小游戏——单机掷骰子
- 轻松拥有美国号码,免费收发短信
- tif怎么转化为jpg_tif怎么批量转换成jpg
- 程序员确实更容易秃....
- Arduino测试一块5路非自锁开关量输入模块ardunio中断编程示例
- js去掉前后空格的函数_Node.js十年,你大爷还是你大爷
- win server 2008r2 相关设置
- tomcat java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit异常解决