AI-视图组件-五个接口的最终简化版
2024-08-24 11:13:53
五个接口最终版
#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
最新文章
- php 获取静态方法调用的类名
- CoreData的使用入门到精通
- jvm内部现成运行
- URAL - 1966 - Cycling Roads(并检查集合 + 判刑线相交)
- Git总结笔记1-搭建和使用30条简明笔记
- json对象和json字符串之间的转化
- TCP 的那些事儿
- tempermonkey相关
- JQuery获得内容 - text()、html() 以及 val()
- PHP使用mysqli扩展连接MySQL数据库
- 高并发第十三弹:J.U.C 队列 SynchronousQueue.ArrayBlockingQueue.LinkedBlockingQueue.LinkedTransferQueue
- eclipse 项目svn忽略不需要提交的文件
- Linux 安装Redis<;集群版>;(使用Mac远程访问)
- 用js 的for循环打印三角形,提取水仙花数,求本月多少天
- 基于JUnit3.8的一个简单的测试程序
- (四)、Fiddler打断点
- python基础之序列化 time random os
- [spoj DISUBSTR]后缀数组统计不同子串个数
- python--opencv模块
- 重新学习vue基础
热门文章
- 2017 ACM/ICPC(北京)总结
- 【NLP CS224N笔记】Lecture 2 - Word Vector Representations: word2vec
- [Docker]CentOS7下Docker安装教程
- while(cin>;>;n1>;>;n2)
- [IOI2000] 邮局
- hdu 4825 &;&; acdream 1063 01字典树异或问题
- 零散的python知识点
- 通过flask实现web页面简单的增删改查
- mybatis打印SQL日志
- mysql 5.6升级到5.7.22