1.  
  2. 主页
  3.  / 
  4. DRF实战教程
  5.  / 
  6. DRF实战之视图集和路由器

DRF实战之视图集和路由器

视图集

我们在前面已经用了类视图,DRF给我了提供了更加抽象的封装,叫做ModelViewSet。

DRF实战之视图集和路由器

视图

class GameView(ModelViewSet):
    queryset = Game.objects.all()
    serializer_class = GameSerializer

路由

game_list = views.GameView.as_view({
    'get': 'list',
    'post': 'create'
})
game_detail = views.GameView.as_view({
    'get': 'retrieve',
    'put': 'update',
    'patch': 'partial_update',
    'delete': 'destroy'
})

 path('games/', game_list, name='game-list'),  # 获取或创建
 path('games/<int:pk>/', game_detail, name='game-detail'),  # 查找、更新、删除

路由器

我们可以通过Router类自动帮我们生成路由。

from rest_framework.routers import DefaultRouter

# 创建路由器并注册我们的视图。
router = DefaultRouter()
router.register('games', views.GameView)
path('', include(router.urls)),

注意:去掉

from rest_framework.urlpatterns import format_suffix_patterns

urlpatterns = format_suffix_patterns(urlpatterns, allowed=[‘json’, ‘api’])

这篇文章对您有用吗?

我们要如何帮助您?

发表评论

您的电子邮箱地址不会被公开。