美文网首页
24、Django_rest framework_路由的优化

24、Django_rest framework_路由的优化

作者: 猪儿打滚 | 来源:发表于2020-03-14 17:45 被阅读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,还可进入路由列表展示页,对接口进行简单的操作)

    相关文章

      网友评论

          本文标题:24、Django_rest framework_路由的优化

          本文链接:https://www.haomeiwen.com/subject/kejjdhtx.html