24、Django_rest framework_路由的优化

2020-03-14  本文已影响0人  猪儿打滚

前言

之前定义路由的urls.py中的代码,太多太繁了,是否有类库能够自动生成呢?

from django.urls import path
from projects import views

urlpatterns = [
    # 没有id的url
    path('project/', views.ProjectsViewSet.as_view({
        # 请求方式和action的映射
        'get': 'list',
        'post': 'create'
    }), name='projects_list'),
    # 带id的url
    path('project/<int:pk>/', views.ProjectsViewSet.as_view({        
         # 请求方式和action的映射
        'get':'retrieve',
        'put': 'update',
        'delete':'destroy'
    }), name='project_detail'
)]

DRFrouters

routers有两个路由对象:SimpleRouterDefaultRouter,两个都能生成路由,只不过后者会把所有生成的路由展示在前端页面的同时,还能进行一些简单操作

SimpleRouter

1、使用:urls.py

from django.urls import path, include
from projects import views

# 1.导入routers
from rest_framework import routers

# 2.创建SimpleRouter路由对象
router = routers.SimpleRouter()

# 3.注册路由
# 第一个参数prefix为路由前缀,一般添加为应用名称即可
# 第二个参数viewset为视图集「不要加as_view」
router.register(r'projects',views.ProjectsViewSet)
# 第一种使用方法
# urlpatterns = [        
#  # 将自动生成的路由添加到列表中
#     path('',include(router.urls))
# ]

# 第二种使用方法
urlpatterns = []
urlpatterns += router.urls

2、启动项目,然后进入127.0.0.1:8000即可在前端查看生成的路由地址(如果使用的DefaultRouter,还可进入路由列表展示页,对接口进行简单的操作)

上一篇 下一篇

猜你喜欢

热点阅读