Hatena::ブログ(Diary)

Fioの素敵な日々 このページをアンテナに追加 RSSフィード

2008-11-24

[]Python Server Pages! 略してPSP

PHPやASPのように、スクリプトをサーバーサイドで動かすものの一つに、PythonによるPython Server Pages(略してPSP)があります。全然知りませんでした。mod_pythonのことを調べていて、何気にページの片隅にPython Server Pagesの文字を発見し、もしかしたらこれは!ということで試してみました。4.9 psp - Python Server Pagesあたりが詳しい方のページかな。
まず、mod_pythonをインストールします。僕と僕のサル以外、みんな何かを隠してる : Apache で Python を動かすあたりが参考になります。
次に、httpd.confに次の3行を追加してApacheを再起動します。これでOK

LoadModule python_module modules/mod_python.so
AddHandler mod_python .psp
PythonHandler mod_python.psp

テスト用のtest.pspを作成します。GETのテストも兼ねて、http://127.0.0.1/test.psp?name=fio としてアクセスすることにします。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>PSPテスト</title> 
</head>
<body>
<%
req.write("<h1>PSPのテストです</h1>")
for n in range(5):
    # begin
%>
<p>この文は5回ほど繰り返されます</p>
<%
# end
%>
<p>次に、GETまたはPOSTされた値を表示してみましょう。</p>
<%
if form.has_key('name'):
   greet = '%sさん、こんにちは!' % form['name'].value
%>
<h1><%= greet %></h1>
<%
# end
%>
<p>今度はあなたのIPアドレスを表示してみましょう。</p>
<h1><%= req.get_remote_host(apache.REMOTE_NAME) %></h1>
<p>ではありませんか?</p>
</body>
</html>

それで、繰り返しを10000回にしてみたり、環境変数の一覧を表示してみたりしたのですが、とにかくサクサク動きます。イントラネット内の他のPCからでもストレスなしに表示されました。正直言って、久しぶりに感動した気がします。コードもわかりやすい部類に入ると思います。EmEditorだと、<% %>の中だけPythonの色分けにして、他はHTMLの色分け、なんてこともできますし。
これでもっと資料があればいいのですが。PSPで検索しても参考になるコードは出てこないし、Python for PSPなんて紛らわしいものもあることですし。