五个接口最终版

#url.py
# 序列化最贱版本
url(r'^customer/$', views.CustomerView.as_view({"get":"list","post":"create"})),
url(r'^customer/(?P<pk>\d+)', views.CustomerView.as_view({"get":"retrieve","put":"update","delete":"destroy"})),
views.py
from rest_framework.serializers import ModelSerializer
class CustomerSerializer(serializers.ModelSerializer):
class Meta:
model=Customer
# field=["name","gender"]
fields="__all__" from rest_framework.viewsets import ModelViewSet
class CustomerView(ModelViewSet): #将五个数据接口全部封装在了ModelViewSet
queryset = Customer.objects.all()
serializer_class = CustomerSerializer

五个接口最终版源码解析

#url(r'^authors/(?P<pk>\d+)/', views.AuthorsView.as_view({"get":"retrieve","delete":"destroy","put":"update"})),
#url(r'^authors/$', ViewSetMixin.as_view({"get":"retrieve","delete":"destroy","put":"update"})),
#url(r'^authors/$', ViewSetMixin.view),
一旦用户访问,get访问authors/1:
ViewSetMixin.view(reqeust):
for method, action in actions.items(): # {"get":"retrieve","delete":"destroy","put":"update"}
handler = getattr(self, action) # handler===self.retrieve handler=== destroy handler===update
setattr(self, method, handler) # self.get=self.retrieve self.delete=self.destroy self.put=self.update return self.dispatch(request, *args, **kwargs)
#
APIView.dispatch(request): handler = getattr(self, request.method.lower()) # self.retrieve
response = handler(request, *args, **kwargs)
# def retrieve(self.request):
` # return ..... return response

最新文章

  1. php 获取静态方法调用的类名
  2. CoreData的使用入门到精通
  3. jvm内部现成运行
  4. URAL - 1966 - Cycling Roads(并检查集合 + 判刑线相交)
  5. Git总结笔记1-搭建和使用30条简明笔记
  6. json对象和json字符串之间的转化
  7. TCP 的那些事儿
  8. tempermonkey相关
  9. JQuery获得内容 - text()、html() 以及 val()
  10. PHP使用mysqli扩展连接MySQL数据库
  11. 高并发第十三弹:J.U.C 队列 SynchronousQueue.ArrayBlockingQueue.LinkedBlockingQueue.LinkedTransferQueue
  12. eclipse 项目svn忽略不需要提交的文件
  13. Linux 安装Redis&lt;集群版&gt;(使用Mac远程访问)
  14. 用js 的for循环打印三角形,提取水仙花数,求本月多少天
  15. 基于JUnit3.8的一个简单的测试程序
  16. (四)、Fiddler打断点
  17. python基础之序列化 time random os
  18. [spoj DISUBSTR]后缀数组统计不同子串个数
  19. python--opencv模块
  20. 重新学习vue基础

热门文章

  1. 2017 ACM/ICPC(北京)总结
  2. 【NLP CS224N笔记】Lecture 2 - Word Vector Representations: word2vec
  3. [Docker]CentOS7下Docker安装教程
  4. while(cin&gt;&gt;n1&gt;&gt;n2)
  5. [IOI2000] 邮局
  6. hdu 4825 &amp;&amp; acdream 1063 01字典树异或问题
  7. 零散的python知识点
  8. 通过flask实现web页面简单的增删改查
  9. mybatis打印SQL日志
  10. mysql 5.6升级到5.7.22