GAE アプリのテンプレートを DRY

Google App Engine のテンプレートでも、Django のみたいにテンプレートを継承できます。テンプレートの継承を使えば、サイトで共通に使われている全ての要素をまとめることが可能です。

まず、ベースとなるレイアウトを記述します。

base.html
<html>
    <head>
        <title>{% block title %}Sample{% endblock %}
    </head>
    <body>
        {% block content %}
        {% endblock %}
    </body>
</html>

そして、差分だけを別ファイルに記述。

index.html
{% extends "base.html" %}

{% block title %}Sample - トップ{% endblock %}

{% block content %}
<p>
Hello, GAE/Python!
</p>
{% endblock %}

これで OK。

共通する要素をベースにまとめておけば、修正も簡単。DRY ですね。