路由控制和响应器

1.路由控制

分为三种:

1)基本路由:

url(r'^books/', views.Books.as_view()),

2)半自动路由

 url(r'^publish/',views.Publish.as_view({'get':'list','post':'create'})),
    url(r'^publish/(?P<pk>\d+)',views.Publish.as_view({'get':'retrieve','put':'update','delete':'destroy'}

必须继承:ViewSetMixin

继承ViewSetMixin的先后顺序要注意

3)全自动路由:(基本不用)

#先生成一个router对象
router=routers.DefaultRouter()
#需要传两个参数,第一个参数就是匹配的路径,第二个参数是视图类
router.register('publish',views.Publish)
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^books/', views.Books.as_view()),
    url(r'^login/', views.Login.as_view()),
    url(r'^authors/', views.Authors.as_view()),
    url(r'^test/', views.TestAll.as_view({'get': 'test3'})),
    # url(r'^publish/$', views.Publish.as_view()),
    # url(r'^publish/(?P<pk>\d+)', views.PublishDetail.as_view()),
    # url(r'^publish/(?P<pk>\d+)', views.PublishDetailView.as_view()),

    # url(r'^publish/$',views.Publish.as_view({'get':'list','post':'create'})),
    # url(r'^publish/(?P<pk>\d+)',views.Publish.as_view({'get':'retrieve','put':'update','delete':'destroy'}))
    url('',include(router.urls)),
]
View Code

不建议使用这种格式,其本质还是生成了4个路由,可以对json格式请求进行匹配

 

2.响应器(基本上不用手动配置)

作用:根据用户请求URL或用户可接受的类型,筛选出合适的渲染组件

局部配置.自己不进行配置,这两个配置也是默认都配置了的。

renderer_classes = [JSONRenderer,BrowsableAPIRenderer]

全局配置

REST_FRAMEWORK={
    'DEFAULT_RENDERER_CLASSES':['rest_framework.renderers.JSONRenderer'],
    # 'DEFAULT_THROTTLE_CLASS':['app01.MyAuth.MyThrottle',],
    # 'DEFAULT_THROTTLE_RATES':{'aaa':'3/m'},
    # 'DEFAULT_PARSER_CLASSES':['rest_framework.parsers.JSONParser'],
}

猜你喜欢

转载自www.cnblogs.com/xufengnian/p/10164125.html