restframework之Class-View-Based
2016-06-25 10:44
246 查看
Class-View-Based技巧
[作用]
[步骤]
1.定义自己的视图类并继承rest_framework.views.APIview类:
2.可以做一个具体方法的字典,将参数名字和方法匹配,利用python的迟绑定技术, 比如:
cloud_method = {
“start”:cloud.start,
“destroy”:cloud.destroy_vm,
}
3.在令起一个方法分配函数:
4.最后在我们的资源类中对应的Method里面只需要调用这个分派方法就可以了:
5.在以后扩展过程中,只需单独写好对应的资源方法、需要怎样的参数形式即可不用考虑什么其他的request处理了,实现了代码的复用,类似与Unix的技术,Just do one thing,do well!
[作用]
更加符合restful架构思想: 资源表现层状态转化 我们将一个视图模块中的资源保存在类中,这个资源类的种种状态变化对应于类中的方法
[步骤]
1.定义自己的视图类并继承rest_framework.views.APIview类:
重写get post delete put 等方法 当有request过来后,框架自动依据request.method去查找对应的类方法
2.可以做一个具体方法的字典,将参数名字和方法匹配,利用python的迟绑定技术, 比如:
cloud_method = {
“start”:cloud.start,
“destroy”:cloud.destroy_vm,
}
3.在令起一个方法分配函数:
assign_Method(name,js): ... return cloud_method[name](js)
4.最后在我们的资源类中对应的Method里面只需要调用这个分派方法就可以了:
#更新资源状态 def put(request,p,*args,**kwargs): #这里统一检查传进来的参数名字p是否在分怕方法字典中 if p in ["start","stop","",] #也可以在这里去渲染模板 _json = simplejson.dumps(request.body)#django1.7以上 return HttpResponse(assign_Method(p,_json))
5.在以后扩展过程中,只需单独写好对应的资源方法、需要怎样的参数形式即可不用考虑什么其他的request处理了,实现了代码的复用,类似与Unix的技术,Just do one thing,do well!
相关文章推荐
- 架构纵横谈之二 ---- 架构的模式与要点
- BS项目中的CSS架构_仅加载自己需要的CSS
- 解析Silverlight调用WCF/Rest异常的解决方法
- 插件管理框架 for Delphi(一)
- 关于三种主流WEB架构的思考
- 使用CSS框架布局的缺点和优点小结
- Android操作系统的架构设计分析
- 一起动手编写Android图片加载框架
- 基于.NET平台常用的框架和开源程序整理
- 列举PHP的Yii 2框架的开发优势
- Windows窗体的.Net框架绘图技术实现方法
- 浅谈JavaScript 框架分类
- 轻量级javascript 框架Backbone使用指南
- javascript实现框架高度随内容改变的方法
- JS刷新框架外页面七种实现代码
- 超赞的动手创建JavaScript框架的详细教程
- 深入探讨前端框架react
- w3c技术架构介绍
- js验证框架实现代码分享
- jQuery的框架介绍