Python开发WebService系列教程之REST,web.py,eurasia,Django


Posted in Python onJune 30, 2014

在Bioinformatics(生物信息学)领域,WebService是很重要的一种数据交换技术,未来必将更加重要。目前EBI所提供的WebService就分别有SOAP和REST两种方式的服务,不管是数据服务还是计算服务(计算任务提交)。

1 Python + SOAP/WSDL/UDDI

最普遍的做法(个人观点)是使用 python ZSI2.0   ,ZSI还依赖于 SOAPpy  和 pyXML  等LIB。

SOAP协议很多人都很熟悉,有很多现有的应用也都使用Java等语言来开发服务端,而客户端除了java,绝大多数的脚本语言也都可以胜任。

关于python ZSI的使用可以参考IBM DW上的这篇文章: 使用 python 开发 Web Service

2 Python + REST

REST一词目前确实很流行;那么使用Python做REST开发,如何做技术选型呢???

其实接触过python web的人应该都知道Django,典型的REST风格的WEB框架 !!!

那么在实际开发中,我们究竟如何选择?

(1 如果你不是架构师,并不过分追求REST的面向资源的理念和体验REST风格架构的具体实践的话,那么,还是根据自己的业务需求和规模等,选择适合的WEB框架或者python web server就好了;比如常见的Django,web.py,cherrypy,Zope,Twisted,Quixote,spyce,webware for python ... 当然国内的框架也不少。

(2 如果你确实想体验下REST风格架构以及面向资源的设计,也许你可以选择使用web.py来达到目的;

这里有一篇关于使用web.py实现RESTfull开发的博客文章: Getting RESTful with web.py   , 相信有很好的参考价值 。

这里还有一篇中文的博文:  用Python实现CRUD功能REST服务

(3 你可以选择eurasia !!!  地址:  http://code.google.com/p/eurasia/

eurasia是一个值得你了解的东西,它是一个server,也包含框架;而且主要特点是:

“ Eurasia is a low-level Python Web framework which follows the Tao

Eurasia3 被设计成用于解决百万级同时在线的长连接用户数量的 HTTP 服务器, 或者每秒种处理上万次 CGI 请求的常规 Web 应用服务器。

Eurasia3 向下兼容 AJAX (难道 AJAX 对服务器有要求吗?), 但是她不推荐您使用落后的 AJAX 模式来摧残用户和程序员, 她正在尝试使用诸如 Pushlet  (Comet 是 Pushlet 的炒作版本) 一类的有趣技术来改变 Web 的开发面貌。

这里的Eurasia3是相对于 Eurasia2说的,两者并不是一会事哦!

这里有它的文档,可以了解和学习下: http://eurasia.googlecode.com/files/Eurasia-3.0.0a6.2-snapshot.tar.bz2

(4 其他方案。

尾声:

在做技术选型时,有两个前提很重要:1 你充分地了解你的项目需求,而且你很清楚自己要把它做成什么样,做到什么规模; 2 你对项目实现相关的技术和理论比较了解,知识面要够广,同时对于主要流派的主要特色要清楚。

之后,你才可能做出不同的方案来比较选择!  对于IT项目开发,技术主要体现在实现阶段,但是它完全其影响到整个项目生命周期! 选择合适的理论和方法来解决问题,才有可能提高解决问题的效率和质量。

Python 相关文章推荐
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
教你学会使用Python正则表达式
Sep 07 Python
TensorFlow实现Batch Normalization
Mar 08 Python
Python实现购物车购物小程序
Apr 18 Python
六行python代码的爱心曲线详解
May 17 Python
Django 实现Admin自动填充当前用户的示例代码
Nov 18 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
Jun 08 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
Sep 23 Python
python实现代码审查自动回复消息
Feb 01 Python
python实现三次密码验证的示例
Apr 29 Python
Python实现socket库网络通信套接字
Jun 04 Python
windows下wxPython开发环境安装与配置方法
Jun 28 #Python
Python使用稀疏矩阵节省内存实例
Jun 27 #Python
Python实现的百度站长自动URL提交小工具
Jun 27 #Python
python使用心得之获得github代码库列表
Jun 25 #Python
在Python中使用异步Socket编程性能测试
Jun 25 #Python
Python开发的单词频率统计工具wordsworth使用方法
Jun 25 #Python
python 字典(dict)遍历的四种方法性能测试报告
Jun 25 #Python
You might like
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
Python模块学习 datetime介绍
2012/08/27 Python
python求crc32值的方法
2014/10/05 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
python中函数默认值使用注意点详解
2016/06/01 Python
Django验证码的生成与使用示例
2017/05/20 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
求职简历中的自我评价分享
2013/12/08 职场文书
商场消防管理制度
2014/01/12 职场文书
应用英语专业自荐信
2014/01/26 职场文书
交通事故赔偿协议书
2014/10/16 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python
MySQL大小写敏感的注意事项
2021/05/24 MySQL