html5 vue restful,Vue Django Restful framework 前后端分离开发 - 5

前阵子没空弄,这阵子又有点时间了,继续。

这章节讲viewsets和router

1: Viewsets 和 Router 最终效果

普通来说,我们的http请求方式有例如get post update 等等

并且要是要配置这样的请求方法的话,我们必须在url.py里面逐个进行配置

比如下面这样,那么在内容多了以后,就造成了url里面非常臃肿

urlpatterns = [

path('goods/',GoodsListView.as_view(),name='goods-list'),

path('goods/',GoodsListView.as_view(),name='goods-detail'),

]

viewsets就解决了这样的问题,viewsets里面包含有好几类

比如ModelViewSet,这个最常用,包括了所有对应的http方法

ReadOnlyModelViewSet,这个是可以用于只查询list或者detail的只读方法等

2:GoodsListViewSet

我们来看下用listview来举个例子

class GoodsListViewSet(mixins.ListModelMixin,viewsets.GenericViewSet):

'''

List all , or create a new

'''

queryset = Goods.objects.all()

serializer_class = GoodsSerializer

pagination_class = GoodsPagination

然后在url.py里面,还需要将请求方法挂钩,因为viewset是没有直接的get,post这样的http请求方法的

from apps.goods.views import GoodsListViewSet

goods_list = GoodsListViewSet.as_view({

'get':'list',

})

urlpatterns = [

path('goods/',goods_list,name='goods_list'),

]

这样,就可以成功建立访问了。

3:Router

但是这样不还是要设定多个url么?

这时候就需要Router这个功能出来了,他可以免去手动建立一堆url的过程

from rest_framework.routers import DefaultRouter

router = DefaultRouter()

router.register('goods',GoodsListViewSet)

urlpatterns = [

path('',include(router.urls)),

]

这样,就做到了用router和viewsets来统一管理请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值