mob_pythonはよく判らないと云いつづけていて、POSTがよく判らなくてGETしか使えなかったのだけれども、ようやくPOSTで送った情報を受け取れた。
<html> <body bgcolor="white"> <form action="form1.py/answer" method="post"> 名前:<input type="text" name="username"> <br /> <input type="checkbox" name="author" value="ダンセイニ">ダンセイニ<br /> <input type="checkbox" name="author" value="ラヴクラフト">ラヴクラフト<br /> <input type="checkbox" name="author" value="トールキン">トールキン<br /> <input type="checkbox" name="author" value="神のみぞ知る">三人とも知らない<br /> <input type="submit" value="OK"><br> </form> </body> </html>という内容のhtmlファイルを作ると、こんな表示になる。
#!/usr/bin/python # -*- coding: utf-8 -*- def answer(req, username, author): if isinstance(author,list): authors = "と".join(author) else: authors = author s = """ <html> <body bgcolor="white"> こんにちは、%sさん。好きな作家は%sですね。 </body></html> """ % (username, authors) return sすると、
こんにちは、豊臣秀吉さん。好きな作家はダンセイニとラヴクラフトですね。というように表示される。つぎに、
こんにちは、徳川家康さん。好きな作家は神のみぞ知るですね。と表示される。難しいどころか、簡単ではないか。PHPよりも簡単ではないか。複数だと勝手に配列にしてくれるのか。一個だと配列にしてくれないから、配列かどうか判別しなければならないけれども。
mod_pythonってよく判らない。日本語の資料が少なすぎる。でも今さら諦められないので、何とかしよう。MySQLがPHPのMySQL接続とうまく共存できないらしいので、SQLite3を導入する。あ、これはubuntuでの話だ。自宅のMacOSXでもいろいろ試したいので、しばらく半年ほど停止していたApache再始動。前にうまく動かなくなっていたのだけど、何となく動くようになった。
さて、mod_pythonである。最新版(今日は3.3.1)をダウンロードしてきて、./configure -> make -> sudo make installで、あとはapacheの再起動をするだけでいいはずだったのだが、mod_pythonの読み込み時にエラーがでて動かない。これでうまく動いているという報告があるのに。
ネット上を彷徨って解決法を見つける。ppc macの場合はこうしなければならないらしい。私にはさっぱり判らないけれど、動いたからまあいいか。
行列の特異値分解をやってみた。RとPythonで。あ、結果が違うじゃないか。と思ったら、表示方法が違うのだった。道理で計算が合わないと思った。
・Rで特異値分解
> testmtx [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > svd(testmtx) $d [1] 9.5255181 0.5143006 $u [,1] [,2] [1,] -0.6196295 -0.7848945 [2,] -0.7848945 0.6196295 $v [,1] [,2] [1,] -0.2298477 0.8834610 [2,] -0.5247448 0.2407825 [3,] -0.8196419 -0.4018960
・pythonで特異値分解(ipython画面)
In : mtx Out: matrix([[1, 3, 5], [2, 4, 6]]) In : svd(mtx) Out: (array([[-0.61962948, -0.78489445], [-0.78489445, 0.61962948]]), array([ 9.52551809, 0.51430058]), array([[-0.2298477 , -0.52474482, -0.81964194], [ 0.88346102, 0.24078249, -0.40189603], [ 0.40824829, -0.81649658, 0.40824829]]))ああ、大変な目に遭った。