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