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定时检查某个进程是否已经关闭的方法
May 20 Python
玩转python爬虫之爬取糗事百科段子
Feb 17 Python
python的文件操作方法汇总
Nov 10 Python
git进行版本控制心得详谈
Dec 10 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
Django ModelForm操作及验证方式
Mar 30 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
基于Python实现简单学生管理系统
Jul 24 Python
Pycharm 设置默认解释器路径和编码格式的操作
Feb 05 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
Zerg兵种介绍
2020/03/14 星际争霸
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
微信小程序 页面之间传参实例详解
2017/01/13 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
python 图片验证码代码
2008/12/07 Python
Python 异常处理实例详解
2014/03/12 Python
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
行政前台岗位职责
2013/12/04 职场文书
村道德模范事迹材料
2014/08/28 职场文书
医学检验专业自荐信
2014/09/18 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
linux目录管理方法介绍
2022/06/01 Servers
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers