路由控制和响应器
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)), ]
不建议使用这种格式,其本质还是生成了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‘], }
以上是关于路由控制和响应器的主要内容,如果未能解决你的问题,请参考以下文章
Django框架深入了解_04(DRF之url控制解析器响应器版本控制分页)