ホームページ >バックエンド開発 >Python チュートリアル >Python 開発 WebService チュートリアル シリーズ: REST、web.py、eurasia、Django
バイオインフォマティクス(生物情報学)の分野において、WebServiceは非常に重要なデータ交換技術であり、今後さらに重要性が高まることは間違いありません。現在、EBI が提供する WebService には、データ サービスまたはコンピューティング サービス (コンピューティング タスクのサブミット) のいずれであっても、SOAP と REST の 2 つのサービスがあります。
1 Python + SOAP/WSDL/UDDI
最も一般的なアプローチ (個人的な意見) は、Python ZSI2.0 を使用することです。ZSI は、SOAPpy や pyXML などの LIB にも依存します。
多くの人は SOAP プロトコルに精通しています。多くの既存のアプリケーションでは、サーバー側の開発に Java やその他の言語も使用されており、クライアント側でもほとんどのスクリプト言語を使用できます。
Python ZSI の使用方法については、IBM DW に関するこの記事を参照してください: Python を使用した Web サービスの開発
2 Python + REST
REST という用語は現在非常に人気がありますが、REST 開発に Python を使用する場合、どのようにテクノロジーを選択すればよいでしょうか? ? ?
実際、Python Web に慣れた人なら誰でも、典型的な REST スタイルの WEB フレームワークである Django を知っているはずです。 ! !
では、実際の開発ではどのように選択すればよいのでしょうか?
(1 あなたがアーキテクトではなく、REST のリソース指向の概念を追求せず、REST スタイルのアーキテクチャの具体的な実践を経験していない場合は、ビジネス ニーズと規模に基づいて適切な WEB フレームワークまたは Python を選択する必要があります。一般的な Django、web.py、cherrypy、Zope、Twisted、Quixote、spyce、Python 用の Web ウェアなど、単なる Web サーバーです。もちろん、国産のフレームワークも多数あります。
(2 本当に REST スタイルのアーキテクチャとリソース指向の設計を体験したい場合は、web.py を使用して目的を達成することを選択できるかもしれません。web.py を使用した RESTfull 開発の実装に関するブログ記事は次のとおりです: Getting RESTful with web.py は、十分な参考価値があると思います。
こちらは別の中国語ブログ投稿です: Python を使用して CRUD 関数 REST サービスを実装する
(3 ユーラシアを選択できます!!! アドレス: http://code.google.com/p/eurasia/
Eurasia は知っておく価値のあるサーバーであり、その主な機能は次のとおりです。
「Eurasia は、Tao に従う低レベルの Python Web フレームワークです
Eurasia3 は、長時間接続で数百万の同時オンライン ユーザーを処理する HTTP サーバー、または 1 秒あたり数万の CGI リクエストを処理する従来の Web アプリケーション サーバーとして設計されています。
Eurasia3 は AJAX と下位互換性があります (AJAX にはサーバー要件がありますか?) が、ユーザーやプログラマを破壊するために下位 AJAX モードを使用することは推奨していません (Comet は誇大広告です)。 Pushlet のバージョン) Web 開発の様相を変えつつある興味深いテクノロジのクラス。
」
ここでのユーラシア 3 はユーラシア 2 と相対的なものであり、この 2 つは同じものではありません。
ここにそのドキュメントがあります。理解して勉強することができます: http://eurasia.googlecode.com/files/Eurasia-3.0.0a6.2-snapshot.tar.bz2
(その他 4 つのオプション。
終了:
テクノロジーを選択するときは、次の 2 つの前提条件が非常に重要です。1. プロジェクトのニーズを完全に理解し、それを何を作りたいのか、どのような規模にしたいのかを正確に理解していること。プロジェクト実施の理解 関連する技術と理論が相対的に理解され、知識が十分に広く、主要な流派の主な特徴が明確である必要があります。
その後、さまざまなプランを立ててオプションを比較することができます。 IT プロジェクト開発の場合、テクノロジーは主に実装フェーズに反映されますが、プロジェクトのライフサイクル全体に完全に影響します。 問題を解決するために適切な理論と方法を選択することによってのみ、問題解決の効率と質を向上させることができます。