2008-11-24
■[Python]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なんて紛らわしいものもあることですし。
