路由控制和响应器

Posted xufengnian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路由控制和响应器相关的知识,希望对你有一定的参考价值。

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‘],
}

 

以上是关于路由控制和响应器的主要内容,如果未能解决你的问题,请参考以下文章

解析器,路由控制,响应器

url,解释器,响应器,版本控制,分页

Vue App 不显示反应器链接片段

Django框架深入了解_04(DRF之url控制解析器响应器版本控制分页)

DRF url控制 解析器 响应器 版本控制 分页(常规分页,偏移分页,cursor游标分页)

(了解)rest_framework之版本控制, 响应器, url控制器