昔はtomcatとかを使ってjsp&サーブレットで遊んでいたりしたんですけど、最近はWeb関連のところはほとんどやってませんでした。。。ということでこのままではインターン破滅なので、簡単な例をとりあえずやってみることに。
テーブルの作成とかはこの付近を参考にして適当に作る。DBを触るにしてもsqliteしか触っていなかったので、mysqlをportでインストール。
sudo port install mysql5 +server
Template Toolkitとか触ったことなかったので、この辺を参考にしながら適当に書いた。
- Free Dynamic DNS(DDNS) by POP3,IMAP4,FTP,HTTP-BASIC for Home Server, VPS | MyDNS.JP
- Template-Toolkit - モダンなPerl入門 - モダンなPerl入門
- http://blog.livedoor.jp/kjugk/archives/771482.html
CGI側のコード。
#!/opt/local/bin/perl use strict; use warnings; use Template; use DBI; my $output; my $template = new Template(); # DBへの接続とエラー処理 my $db = DBI->connect("DBI:mysql:test") || die "CONNECT ERROR $DBI::errstr"; # 結果を取ってくる my $result = $db->selectall_arrayref("SELECT name, telno from phone"); # リファレンスをハッシュの値にするといいらしい my $param = {result => $result}; $template->process('template.tt', $param, \$output,); $db->disconnect; print "Content-type: text/html\n\n"; print $output; exit;
テンプレート側。
<html> <head> <title>DB test</title> </head> <body> <table> <tr> <th>name</th> <th>telno</th> </tr> [%- FOREACH res IN result %] <tr> <td>[% res.0 %]</td> <td>[% res.1 %]</td> </tr> [%- END %] </table> </body> </html>
ということでなんか動いた><。
/var/log/apache2/error_logを見ながらデバッグするとか死にたくなるようなことやってたんだけど、
- CGI::Carp
- KCatch.pm
などを使うとよいというのを教えてもらいました。Internal Server Error怖いです><。あとTemplate ToolkitのところでもDumperが使えるというのも教えてもらいました!!
参考にした本
- 作者: Tom Christiansen,Nathan Torkington
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2003/08
- メディア: ペーパーバック
- クリック: 5回
- この商品を含むブログ (5件) を見る