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抓取模板之家的CSS模板
Mar 16 Python
python使用7z解压apk包的方法
Apr 18 Python
python实现连接mongodb的方法
May 08 Python
如何使用python爬取csdn博客访问量
Feb 14 Python
python3.6实现学生信息管理系统
Feb 21 Python
Python 处理文件的几种方式
Aug 23 Python
Python threading的使用方法解析
Aug 28 Python
python配置文件写入过程详解
Oct 19 Python
基于python实现从尾到头打印链表
Nov 02 Python
简单了解python列表和元组的区别
May 14 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
Python Django 后台管理之后台模型属性详解
Apr 25 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简洁函数小结
2011/08/12 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
详解PHP归并排序的实现
2016/10/18 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
jQuery插件扩展实例【添加回调函数】
2016/11/26 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
详解Python编程中基本的数学计算使用
2016/02/04 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
逻辑链路控制协议
2016/10/01 面试题
建筑工程专业毕业生自荐信
2013/10/19 职场文书
应届本科生推荐信范文
2013/12/25 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
python获取对象信息的实例详解
2021/07/07 Python