Rest Framework之路由

路由

 

1、基本路由

    re_path('(?P<version>[v1|v2]+)/Test1View/$', views.Test1View.as_view())

2、当后端视图继承了ModelViewSet,或者继承mixins中的增删改查等,路由需要修改  

      访问多条数据和增加数据

    re_path('(?P<version>[v1|v2]+)/Test1View/$', views.Test1View.as_view({'get': 'list', "post":"create"})),

      访问单条数据,根据ID进行删、改、单条数据查询。

    re_path('(?P<version>[v1|v2]+)/Test1View/(?P<pk>\d+)$', views.Test1View.as_view({'get': 'retrieve', "delete": "destroy","put": "update","patch": "partial_update"})),

3、相比第2条,同rest_framework渲染器相关会多两条

      访问多条数据和增加数据

        re_path('(?P<version>[v1|v2]+)/Test1View/$', views.Test1View.as_view({'get': 'list', "post":"create"})),

        # 在访问的时候,可以通过http://127.0.0.1:8000/api/v1/Test1View.json。这种形式可以在网页上直接渲染器得到json格式数据,

        re_path('(?P<version>[v1|v2]+)/Test1View/\.(?P<format>\w+)$', views.Test1View.as_view({'get': 'list', "post":"create"})),

      访问单条数据,根据ID进行删、改、单条数据查询。

        re_path('(?P<version>[v1|v2]+)/Test1View/(?P<pk>\d+)$', views.Test1View.as_view({'get': 'retrieve', "delete": "destroy","put": "update","patch": "partial_update"})),

        # 同上面的多条访问一样

        re_path('(?P<version>[v1|v2]+)/Test1View/(?P<pk>\d+)\.(?P<format>\w+)$', views.Test1View.as_view({'get': 'retrieve', "delete": "destroy","put": "update","patch": "partial_update"})),

4、可以通过一段代码自动生成上面4条URL加上2条根地址。

 1 from django.urls import re_path,include
 2 from api import views
 3 from rest_framework import routers
 4 
 5 router = routers.DefaultRouter()
 6 # 设定在URL中的资源名称,普通写法中的资源名词,类名称
 7 router.register('xxxx',views.Test1View)
 8 
 9 urlpatterns = [
10     re_path('(?P<version>[v1|v2]+)/', include(router.urls)),
11 ]

 

 

 

 

 

 

 

   

posted @ 2019-05-22 15:14  cunzhishu  阅读(95)  评论(0)    收藏  举报