非常に簡単な例だが、HTTP通信でクライアントからサーバにファイルを送信する例。クライアント側モジュールであるSend.pyに送信するファイルを引数として与えてあげると、mod_python上で動くサーバモジュールmptest.pyがそのデータを受け取りファイルとして書き出すという流れ。
—–
非常に簡単な例だが、HTTP通信でクライアントからサーバにファイルを送信する例。クライアント側モジュールであるSend.pyに送信するファイルを引数として与えてあげると、mod_python上で動くサーバモジュールmptest.pyがそのデータを受け取りファイルとして書き出すという流れ。
—–
僕の環境では、以下のような内容がブラウザに表示されました。
引用したエントリでブラウザからApacheのmod_pythonモジュールで動くモジュールにリクエストを飛ばしたが、Pythonでクライアントを簡単に作るとすれば以下のように書くだけでOKだ。
—–
二十代は模索のときブログ – PythonでXMLを扱う(7)
では今回で簡単にXSLTの動きを見たので、次回からはこれをPythonに組み込んでいく方法を勉強する。
と前回書いたが、やはりもう少しXSLTの動きを見てみようと思う。
—–
実は恥ずかしながらクロージャというものがイマイチ何だか分からないというか、何の為に使うのか、何で便利なのかとかまったくもって分からなかったのだが、先日ハッカーと画家 コンピュータ時代の創造者たちの第13章「オタク野郎の復讐」のプログラム比較例を見ていたら突然理解が進んだ。
—–
今回はXMLの話題はお休みして、Apacheにmod_pythonモジュールを入れてみる。今後ここでテストプログラムを作るときは、この環境を利用して簡単なサーバプログラムとするかもしれない。
mod_python is an Apache HTTP Server module that integrates the Python programming language into the Apache server. It is intended to replace Common Gateway Interface (CGI) as a method of executing Python scripts on a web server. The promised benefits are faster execution speed and maintaining data over multiple sessions.
今回からはXSLT(Extensible Stylesheet Language Transformations)を使ってみることにする。まずいつもどおりWikipediaから(日本語版は情報少ないんで、英語版をリンクします)。
Wikipedia : XSL Transformations
Extensible Stylesheet Language Transformations (XSLT) is a Turing complete XML-based language used for the transformation of XML documents.
SAXにてXMLの階層構造を扱う際、あるタグの内部に入ったことをフラグにて判断する方法があると思う。例えば以下のようにフラグを用いることで、hogeタグの内部に入ったのか入っていないのかを判断できる。
class SimpleHandler(ContentHandler): def __init__(self): self.inHoge = False def startElement(self, name, attrs): if.name == "hoge": self.inHoge = True def endElement(self, name): if.name == "hoge": self.inHoge = False
ただこれ、もうちょっとスマートに出来ないものかと、ContentHandlerを動的に変更することができないかどうか試してみた。それが出来れば、フラグを立てる代わりにhandlerを入れ替えてしまうという方法が取れる。
前回まではDOMを使っていたが、今回からはSAX(Simple API for XML)を使ってXMLを扱ってみる。DOMと違ってメモリ上にXMLファイルの情報を全て読み込むようなことはなく、順次読み込みを行い、読み込んだ内容に対して逐次イベントを発生させる仕組みのAPIである。
Wikipedia : Simple API for XML
XML文書をツリー構造として扱うDOMと異なり、一連のイベントとして表現するイベント駆動型のAPIである。したがって、アプリケーションが積極的にAPIにアクセスするDOMに対し、SAXではアプリケーションがイベントが来るのを待ち受ける受動的な動作が大部分を占める。
あるXMLを扱うアプリケーションを作成する際、DOMを使うかSAXを使うかは、両者のメリットデメリットをしっかり認識した上で扱うべきであるが、一般的に大きなサイズのXMLファイルであればSAXを用いた方が良さそうだ。
—–
オープンソースとして公開されていて、Pythonで書かれているという興味深いERPソフト「ERP5」というものを発見した。基本的には経理向けっぽいが、CRM分野やeCommerc等にも使うことが出来るらしい。
—–
今回は、DOMインターフェースを使ってXML文書を作成してみる。DOMインターフェースなぞ使わなくても、プログラム言語の文字列操作でXML文書を作ることは可能ではあるが、DOMを用いることで正しいXML文書が簡単に作れるということが保証される。
—–