ViewSetMixin
# ViewSetMixin 写在前面,先找ViewSetMixin的as_view方法
# 用了ViewSetMixin,视图类中,不需要再写get,post,delete...这些函数了,函数名可以自定义
# 而且这个视图类,可以响应多条路由
-使用:
-urls.py中
url(r‘^publishs/‘,views.PublishView.as_view({‘get‘:‘aaa‘,‘post‘:‘ddd‘})),
url(r‘^bbb/‘,views.PublishView.as_view({‘get‘:‘bbb‘,‘post‘:‘ccc‘})),
-视图类中:
class PublishView(ViewSetMixin,APIView):
def aaa(self,request):
return Response({‘status‘:100})
def bbb(self,request):
return Response({‘bb‘:"bbb"})
-url控制
-传统的url配置
url(r‘^books/$‘, views.BookView.as_view()),
url(r‘^books/(?P<pk>\d+)$‘, views.BookDetailView.as_view()),
-半自动
url(r‘^publish/$‘, views.PublishView.as_view({‘get‘:‘list‘,‘post‘:‘create‘})),
url(r‘^publish/(?P<pk>\d+)/$‘, views.PublishView.as_view({‘get‘:‘retrieve‘,‘put‘:‘update‘,‘delete‘:‘destroy‘})),
-全自动(了解)
-能自动生成多条路由
-解析器
-源码从request.data
-全局配置
-‘DEFAULT_PARSER_CLASSES‘:[‘rest_framework.parsers.JSONParser‘],
-局部配置
parser_classes=[JSONParser,]
-响应器(一般用默认就可以了)
-局部配置
renderer_classes=[JSONRenderer,]
-全局配置
‘DEFAULT_RENDERER_CLASSES‘: (
‘rest_framework.renderers.JSONRenderer‘,
‘rest_framework.renderers.BrowsableAPIRenderer‘,
)
原文:https://www.cnblogs.com/xiaocaiyang/p/10453252.html