Python開發(fā)WebService系列教程之REST,web.py,eurasia,Django
在Bioinformatics(生物信息學(xué))領(lǐng)域,WebService是很重要的一種數(shù)據(jù)交換技術(shù),未來必將更加重要。目前EBI所提供的WebService就分別有SOAP和REST兩種方式的服務(wù),不管是數(shù)據(jù)服務(wù)還是計(jì)算服務(wù)(計(jì)算任務(wù)提交)。
1 Python + SOAP/WSDL/UDDI
最普遍的做法(個(gè)人觀點(diǎn))是使用 python ZSI2.0 ,ZSI還依賴于 SOAPpy 和 pyXML 等LIB。
SOAP協(xié)議很多人都很熟悉,有很多現(xiàn)有的應(yīng)用也都使用Java等語(yǔ)言來開發(fā)服務(wù)端,而客戶端除了java,絕大多數(shù)的腳本語(yǔ)言也都可以勝任。
關(guān)于python ZSI的使用可以參考IBM DW上的這篇文章: 使用 python 開發(fā) Web Service
2 Python + REST
REST一詞目前確實(shí)很流行;那么使用Python做REST開發(fā),如何做技術(shù)選型呢???
其實(shí)接觸過python web的人應(yīng)該都知道Django,典型的REST風(fēng)格的WEB框架 ?。?!
那么在實(shí)際開發(fā)中,我們究竟如何選擇?
(1 如果你不是架構(gòu)師,并不過分追求REST的面向資源的理念和體驗(yàn)REST風(fēng)格架構(gòu)的具體實(shí)踐的話,那么,還是根據(jù)自己的業(yè)務(wù)需求和規(guī)模等,選擇適合的WEB框架或者python web server就好了;比如常見的Django,web.py,cherrypy,Zope,Twisted,Quixote,spyce,webware for python ... 當(dāng)然國(guó)內(nèi)的框架也不少。
(2 如果你確實(shí)想體驗(yàn)下REST風(fēng)格架構(gòu)以及面向資源的設(shè)計(jì),也許你可以選擇使用web.py來達(dá)到目的;
這里有一篇關(guān)于使用web.py實(shí)現(xiàn)RESTfull開發(fā)的博客文章: Getting RESTful with web.py , 相信有很好的參考價(jià)值 。
這里還有一篇中文的博文: 用Python實(shí)現(xiàn)CRUD功能REST服務(wù)
(3 你可以選擇eurasia ?。?! 地址: http://code.google.com/p/eurasia/
eurasia是一個(gè)值得你了解的東西,它是一個(gè)server,也包含框架;而且主要特點(diǎn)是:
“ Eurasia is a low-level Python Web framework which follows the Tao
Eurasia3 被設(shè)計(jì)成用于解決百萬級(jí)同時(shí)在線的長(zhǎng)連接用戶數(shù)量的 HTTP 服務(wù)器, 或者每秒種處理上萬次 CGI 請(qǐng)求的常規(guī) Web 應(yīng)用服務(wù)器。
Eurasia3 向下兼容 AJAX (難道 AJAX 對(duì)服務(wù)器有要求嗎?), 但是她不推薦您使用落后的 AJAX 模式來摧殘用戶和程序員, 她正在嘗試使用諸如 Pushlet (Comet 是 Pushlet 的炒作版本) 一類的有趣技術(shù)來改變 Web 的開發(fā)面貌。
”
這里的Eurasia3是相對(duì)于 Eurasia2說的,兩者并不是一會(huì)事哦!
這里有它的文檔,可以了解和學(xué)習(xí)下: http://eurasia.googlecode.com/files/Eurasia-3.0.0a6.2-snapshot.tar.bz2
(4 其他方案。
尾聲:
在做技術(shù)選型時(shí),有兩個(gè)前提很重要:1 你充分地了解你的項(xiàng)目需求,而且你很清楚自己要把它做成什么樣,做到什么規(guī)模; 2 你對(duì)項(xiàng)目實(shí)現(xiàn)相關(guān)的技術(shù)和理論比較了解,知識(shí)面要夠廣,同時(shí)對(duì)于主要流派的主要特色要清楚。
之后,你才可能做出不同的方案來比較選擇! 對(duì)于IT項(xiàng)目開發(fā),技術(shù)主要體現(xiàn)在實(shí)現(xiàn)階段,但是它完全其影響到整個(gè)項(xiàng)目生命周期! 選擇合適的理論和方法來解決問題,才有可能提高解決問題的效率和質(zhì)量。
- 哪些是python中web開發(fā)框架
- python開發(fā)實(shí)例之python使用Websocket庫(kù)開發(fā)簡(jiǎn)單聊天工具實(shí)例詳解(python+Websocket+JS)
- python GUI庫(kù)圖形界面開發(fā)之PyQt5中QWebEngineView內(nèi)嵌網(wǎng)頁(yè)與Python的數(shù)據(jù)交互傳參詳細(xì)方法實(shí)例
- python GUI庫(kù)圖形界面開發(fā)之PyQt5瀏覽器控件QWebEngineView詳細(xì)使用方法
- python Django的web開發(fā)實(shí)例(入門)
- python Web開發(fā)你要理解的WSGI & uwsgi詳解
- Python部署web開發(fā)程序的幾種方法
- Python中SOAP項(xiàng)目的介紹及其在web開發(fā)中的應(yīng)用
- 10款最好的Web開發(fā)的 Python 框架
- Python Web框架Flask下網(wǎng)站開發(fā)入門實(shí)例
- 全面解讀Python Web開發(fā)框架Django
- Python用來做Web開發(fā)的優(yōu)勢(shì)有哪些
相關(guān)文章
redis數(shù)據(jù)庫(kù)及與python交互用法簡(jiǎn)單示例
這篇文章主要介紹了redis數(shù)據(jù)庫(kù)及與python交互用法,結(jié)合實(shí)例形式分析了Redis數(shù)據(jù)庫(kù)的基本類型、操作以及Python針對(duì)Redis數(shù)據(jù)庫(kù)的連接、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下2019-11-11Python讀取hdf文件并轉(zhuǎn)化為tiff格式輸出
這篇文章主要介紹了Python讀取hdf文件并轉(zhuǎn)化為tiff格式輸出,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07Python函數(shù)的返回值、匿名函數(shù)lambda、filter函數(shù)、map函數(shù)、reduce函數(shù)用法實(shí)例分析
這篇文章主要介紹了Python函數(shù)的返回值、匿名函數(shù)lambda、filter函數(shù)、map函數(shù)、reduce函數(shù)用法,結(jié)合實(shí)例形式分析了Python函數(shù)的返回值、匿名函數(shù)lambda、filter函數(shù)、map函數(shù)、reduce函數(shù)相關(guān)功能、原理與使用技巧,需要的朋友可以參考下2019-12-12

python文件讀取時(shí)順序錯(cuò)誤的問題及解決

同時(shí)安裝Python2 & Python3 cmd下版本自由選擇的方法

python如何對(duì)數(shù)組進(jìn)行降維