検索
連載

第6回 Webアプリケーション開発にチャレンジ【前編】作って学ぶ、今どきのWebサービス(2/3 ページ)

本連載ではこれまで、PerlによるWebプログラミングの基礎から応用まで解説してきました。今回は、これまで学んだことを踏まえた上で、Webサービスを使ったWebアプリケーション開発にチャレンジします。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

出力をテンプレートエンジンで整形する

 さて、Open Searchを使ったWebアプリケーションの開発に入っていきますが、いきなりアプリケーションを作る前に、出力をどうやってHTMLに整形するか考えてみましょう。

 真っ先に思いつくのは、リスト2のようにPerlスクリプト中にHTMLを書くスタイルです。しかし、HTMLのデザインを変更するのにスクリプト本体を変更しなければいけなかったり、行数が増えてくるとスクリプトの可読性が低くなったりするので、この方法はあまりお勧めできません。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

リスト2 Perlスクリプト中にHTMLを書いた場合

 そこで利用するのがテンプレートエンジン。マクロを実行できるテンプレートとしてHTMLを用意する方法です。これも利用例を見るのが分かりやすいと思います。Perlの代表的なテンプレートエンジンであるTemplate-Toolkit*(以下、TT)を使って先のスクリプトを整形してみましょう。

 まず、スクリプトをリスト3のように書き換えて、TTで出力するように変更します。このようにTemplateインスタンスのprocessメソッドに、

  • テンプレートファイル
  • テンプレートから利用するオブジェクトやデータ構造

を渡して実行すると、テンプレートファイルを読み取ってマクロを展開して出力してくれます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

リスト3 Template-Toolkitを使ってHTMLを出力

 次に、スクリプトとは別に、テンプレートファイルを用意します。例えば検索結果をul、liタグを使ってマークアップするテンプレートはリスト4のようになります。これを実行すると、実行例3のように整形されて表示されます。テンプレートエンジンを使ったことで、スクリプトと出力のHTMLをきれいに分離できました。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

リスト4 検索結果をul、liタグを使ってマークアップするテンプレート

 このようにTTでは「[% var %]」や「[% FOREACH var IN list %]」といったマクロを使ってテンプレートを記述します。より詳しい使い方はCPANのTTのドキュメントを参照してください。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

このページで出てきた専門用語

テンプレートエンジンであるTemplate-Toolkit

CPANではTemplateの名前で登録されている。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る