ども、みむらんです。
第2回の続きってことで。
1.テンプレートとなる HTML ファイルを書く。
test_project ディレクトリ以下に templates/test_app ディレクトリを作成し、
templates/test_app ディレクトリ以下に home.html を以下の内容で作成します。
<html>
<head>
<title>{{title}}</title>
</head>
<body>
{% for i in data %}
{{i}}<br/>
{% endblock %}
</body>
</html>
{{変数}} というのを、「テンプレート変数」と呼び、
{{% タグ 引数 %}} ~ {{% end タグ %}} というのを、「タグ」と呼びます。
テンプレート変数の記述を用いて、変数の中身を表示させ、
タグの記述を用いて表示上の処理を記述する形となります。
Django テンプレート言語 — Django v1.0 documentation
ぱーっとこのページを見ていた感じでは、以下の要素がよく使われそうな気がします(ぉ
|
タグ名 |
利用用途 |
| extends [template file] | すでに定義されているテンプレートファイルを継承する。 Java での extend と同義と捉えられるかも。 |
| block [block name] | 継承元:ブロック(範囲)を定義し、継承先で値が変更される場所を設定する。 継承先:事前にブロックとして定義されている範囲のテキストを変更する。 |
| for [val1] in [val2] | val2 から要素を1つ1つ取り出し、 val1 に格納する形で、 for ~ endfor 間を繰り返す。 Java で言うところの foreach がこれに該当。 ちなみに、 Python の for は全て foreach な処理になっている。 |
| if [条件] ~ else ~ endif ifequal [val1] [val2] ~ endifequal ifnotequal [val1] [val2] endnotequal |
条件が真であれば、該当範囲が実行される。通常の if 条件と同じ。 ifequal は2つが等しい場合。 ifnotequal は2つが等しくない場合にそれぞれ実行される。 |
2.settings.py にテンプレートが置かれているディレクトリのパスを記述する。
TEMPLATE_DIRS = ( )
こうなっている部分があるかと思いますが、ここを下記のように書き換えます。
TEMPLATE_DIRS = ( '[test_project までの絶対パス]/templates', )
([test_project までの絶対パス] には、それぞれの環境に合ったパスを記述してください。)
3.views.py を編集する。
test_app に移動し、views.py を以下のように書き換えます。
from django.http import HttpResponse
from django.template import loader, RequestContext
def home(req):
contexts = RequestContext(req, {
'title' : 'hello django!',
'data' : ('Hello', 'django', 'world'),
})
template = loader.get_template('test_app/home.html')
return HttpResponse(template.render(contexts))
ピンバック: Djangoのtemplatesをどこに置くのかメモ | kazsoga(曽我一弘)ブログ