ITにおける「テンプレートエンジン」とは?
「テンプレートエンジン(Template Engine)」とは、あらかじめ用意したテンプレート(ひな形)に、プログラムから取得したデータを組み合わせて、最終的なHTMLなどを生成する仕組みのことです。
簡単にいうと、「決められたHTMLのひな形に、必要なデータを当てはめて画面を作る仕組み」です。
なぜテンプレートエンジンを使うの?
例えば、TODOアプリでデータベースに次のようなTODOが保存されているとします。
- 買い物をする
- Javaを勉強する
- メールを確認する
これらをHTMLに1件ずつ手作業で記述するのではなく、テンプレートエンジンを使うことで、データベースから取得したTODOをHTMLのひな形に埋め込んで表示することができます。
そのため、データの件数や内容が変わっても、同じテンプレートを利用して画面を生成できます。
Thymeleafの場合
JavaのWebアプリケーションでは、Thymeleaf(タイムリーフ)というテンプレートエンジンがよく利用されます。
例えば、次のようなHTMLを用意します。
<p th:text="${todo.content}"></p>
${todo.content}の部分には、Java側から渡されたTODOの内容が入ります。
例えばTODOの内容が「Javaを勉強する」だった場合、ブラウザに表示されるHTMLは、
<p>Javaを勉強する</p>
のようになります。
このように、HTMLのテンプレートとJava側のデータを組み合わせて、画面に表示するHTMLを生成するのがテンプレートエンジンの役割です。
テンプレートエンジンとレンダリングの違い
「テンプレートエンジン」と「レンダリング」は関連していますが、同じ意味ではありません。
テンプレートエンジンは、テンプレートとデータを組み合わせてHTMLなどを生成する仕組みです。
一方、レンダリングは、生成されたHTMLなどをブラウザが処理して、実際の画面として表示することを指します。
例えば、
Java → ThymeleafでHTMLを生成 → ブラウザがレンダリング → 画面に表示
という流れになります。
まとめ
テンプレートエンジンとは、
「HTMLなどのテンプレートにデータを組み合わせて、動的なWebページを生成する仕組み」
です。
代表的なものとして、JavaではThymeleaf、JavaScriptではHandlebarsやEJS、PythonではJinjaなどがあります。
