DRF视图集的路由设置
在使用DRF视图集时,往往需要配一大堆路由,例如:
# views.py
class DepartmentViewSet(ListModelMixin,CreateModelMixin,RetrieveModelMixin,
UpdateModelMixin,DestroyModelMixin,GenericViewSet): queryset = Department.objects.all()
serializer_class = DepartmentSerializer # urls.py
urlpatterns = [
url(r'^departments$',views.DepartmentViewSet.as_view({'get':'list','post':'create'})),
url(r'^departments/(?P<pk>\d+)$',views.DepartmentViewSet.as_view({
'get':'retrieve','put':'update','delete':'destroy'
}))
]
实在是太麻烦了。
幸好DRF提供了两个router可以很方便地设置路由:
- SimpleRouter
- DefaultRouter
这两个router的使用方法都是一样的,只不过DefaultRouter多点功能,例如可以访问(url+.json)取得返回的JSON数据,访问首页也可以知道有多少个类视图......
使用方法
1.创建router对象,并注册视图集。
from rest_framework import routers
from user.views import DepartmentViewSet router = routers.SimpleRouter()
router.register(r'department',DepartmentViewSet,base_name='dep')
register(prefix, viewset, base_name)方法说明:
- prefix 该视图集的路由前缀
- viewset 视图集
- base_name 路由名称的前缀
2.添加路由数据
可以有两种方式:
urlpatterns = [
...
]
urlpatterns += router.urls
或者
urlpatterns = [
...
url(r'^', include(router.urls))
]
3.验证
打印一下urlpatterns,会发现自动生成了~
[<RegexURLPattern dep-list ^department/$>,
<RegexURLPattern dep-detail ^department/(?P<pk>[^/.]+)/$>]
DRF视图集的路由设置的更多相关文章
- 使用DRF视图集时自定义action方法
在我们用DRF视图集完成了查找全部部门,创建一个新的部门,查找一个部门,修改一个部门,删除一个部门的功能后,views.py的代码是这样子的: class DepartmentViewSet(Mode ...
- 068.Python框架Django之DRF视图集使用
一 视图集与路由的使用 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() ...
- day73:drf:drf视图相关类&路由Routers&创建虚拟环境
目录 1.APIView 2.GenericAPIView:通用视图类 3.5个视图扩展类:ListModelMixin,CreateModelMixin,RetrieveModelMixin,Upd ...
- 对drf视图集的理解
视图集ViewSet 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() ...
- DRF 视图家族及路由层补充
目录 视图家族 一.views视图类 1.APIView类 2.GenericAPIView类(generics中) 二.mixins类:视图辅助工具 1.RetrieveModelMixin 2.L ...
- DRF视图集的使用
# 原创,转载请留言联系 如果要把同一种http请求方法的多个接口放在同一个视图中,比如:查询多条数据和一条数据都是get请求,放在同一个视图里,应该怎么做呢??? 如果直接放在一起,会怎样呢? # ...
- drf之视图类与路由
视图 Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 2个视图基类 APIView rest_framework.v ...
- drf04 drf视图类
REST framework 提供了众多的通用视图基类与扩展类,以简化视图的编写. 1.2个视图基类 1.1. APIView rest_framework.views.APIView APIView ...
- 二: drf视图
Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 一:请求与响应 1:request Request 1 REST f ...
随机推荐
- BZOJ 3998 TJOI2015 弦论 后缀自动机+DAG上的dp
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3998 题意概述:对于一个给定长度为N的字符串,求它的第K小子串是什么,T为0则表示不同位置 ...
- 最大流——EK算法
一.算法理论 [基本思想] 反复寻找源点s到汇点t之间的增广路径,若有,找出增广路径上每一段[容量-流量]的最小值delta,若无,则结束.在寻找增广路径时,可以用BFS来找,并且更新残留网络的值(涉 ...
- Ext.Net学习网站
1.http://ext.net/ 官网.里面的examples是宝贝. 2.http://www.qeefee.com/zt-extnet 起飞网
- js把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
最近在做项目的时候,需要把后台返回的时间转换成几秒前.几分钟前.几小时前.几天前等的格式:后台返回的时间格式为:2015-07-30 09:36:10,需要根据当前的时间与返回的时间进行对比,最后显示 ...
- 【EasyNetQ】- 自动订阅者
从v0.7.1.30开始,EasyNetQ简单易用AutoSubscriber.你可以用它来轻松地扫描实现任何接口的类的特定组件IConsume<T>或IConsumeAsync<T ...
- To Chromium之浏览器外框UI(2)
之前一些文章本来是草稿状态,一次性全release出来了,排版上可能看上去不太舒服,等哪一天研究下改改排版. Here继续chromium的UI,看看,浏览器的外壳是怎么被画出来的:) 可以先关注下几 ...
- Java使用泛型的困顿
原文有点儿胡说的意味,删了,有空再次更新这篇博文~
- How to Create a Perl Based Custom Monitor on NetScaler
How to Create a Perl Based Custom Monitor on NetScaler https://support.citrix.com/article/CTX227727 ...
- 51nod1254 最大子段和 V2 DP
---题面--- 题解: 表示今天做题一点都不顺.... 这题也是看了题解思路然后自己想转移的. 看的题解其实不是这道题,但是是这道题的加强版,因为那道题允许交换k对数. 因为我们选出的是连续的一段, ...
- IFROG线上赛做过的题目
#6 1068: 找规律 int main(){ int t,n; cin>>t; while(t--){ cin>>n; ==)printf(); else printf(& ...