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 相关文章推荐
简单的Python的curses库使用教程
Apr 11 Python
python 采集中文乱码问题的完美解决方法
Sep 27 Python
Python使用functools实现注解同步方法
Feb 06 Python
python爬取个性签名的方法
Jun 17 Python
flask框架视图函数用法示例
Jul 19 Python
python中scikit-learn机器代码实例
Aug 05 Python
详解用Python练习画个美队盾牌
Mar 23 Python
python实现Excel文件转换为TXT文件
Apr 28 Python
python3 使用traceback定位异常实例
Mar 09 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 14 Python
Python tkinter实现日期选择器
Feb 22 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 全局变量范围分析
2009/08/07 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
2013/06/09 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
python复制文件的方法实例详解
2015/05/22 Python
快速解决pandas.read_csv()乱码的问题
2018/06/15 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
机电一体化毕业生求职信
2013/11/02 职场文书
2014年情人节活动方案
2014/02/16 职场文书
培训班主持词
2014/03/28 职场文书
某某同志考察材料
2014/05/28 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
狮子林导游词
2015/02/03 职场文书
金榜题名主持词
2015/07/02 职场文书
我去timi了,一起去timi是什么意思?
2022/04/13 杂记