PythonでWebページ?
Pythonで動的な、又はプログラマブルなWebページを作る方法・ツールは、私が最近調べただけでも、割とピンキリである。いくらかを自分用に纏めておく。
CGI
CGIというのは、スクリプト言語(Pythonに限らず、PHP、Perlなど)を記述するシステムと表現すれば良いのだろうか。頭に
#!/bin/usr/python
とか書いて、拡張子を.cgiにすれば、立派なCGIスクリプトである。
基本的には、printでHTMLを書いていけばいい。頭に
print "Content-Type: text/html"
と付ければOK。text/plainもあるけど、流石にplainでは…。
詳細は以下のサイトとか見たりすると良いかも
テンプレートエンジン
CGIはprint文でHTML書いたりする訳だが、プログラムに直接HTMLタグ等を書くのはスマートじゃない。どうせページの全てをプログラミングする必要は無く、大抵は一部分だけなのである。
従って、HTMLの文法を拡張して、必要な部分は後で埋め込みができるようなHTML+αなテキストデータを処理するようなのがあると便利である。これがテンプレートエンジンである。
テンプレートエンジンも割とピンキリで、メジャーなものは、以下のブログで紹介されている。
テンプレートシステム(?)
実際に巨大なサイトを作るにはテンプレートシステムを使うのが最良である。サイト一式を作るのに多くの場合必要となるようなシステムは、テンプレートシステムを使えば簡単に開発できる。
…というのがウリらしい。自分はそこまで大仰な物が必要ないので齧っただけで投げてしまった。1ページで収まるような簡単なものを書くにはあまり向かない。ただ個人的に目を引いたのは、ユーザ認証のシステムを簡単に作れるらしい、という点であろうか。逆に言えばそれぐらい大規模なシステム向けで真価を発揮するようだ。当然ながらテンプレートエンジンを内包している。
JavaScriptを書く
逆に、HTMLにPythonコードを埋め込みたいこともあるかもしれない。しかしそんなことができるのは、基本的にはJavaScriptだけである。
従って、JavaScriptのコードを出力するCGIを、以下のように呼び出せば宜しい。
<script type="text/javascript" src="hoge.cgi"></script>
hoge.cgiでJavaScriptのコードをprintするようなPythonコードを書けばOK。ここまで読めば分かると思うが、HTMLにHTMLを埋め込む場合、この手法は使えない。