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 ]


浙公网安备 33010602011771号