プログラマメモ2 - programmer no memo2

djangoでテンプレート 2008/10/25

Djangoです。google app engineです。
Djangoのテンプレートを使ってみます。

すでにAppEngineにアプリケーションを作成して、Django ヘルパーを導入してあるところから。

まずapp(Djangoのmanage.pyの)ディレクトリを作成。

python manage.py startapp aaa


つぎに、urls.pyの編集。
urlpatterns = patterns('',
(r'^aaa/', 'aaa.views.hello'),
)

このパターンは、aaa/ではじまるものはaaaにあるviews.pyのhello関数を実行という意味。

つぎに、settings.pyにあるTEMPLATE_DIRS。
デフォルトで、
ROOT_PATH = os.path.dirname(__file__)
TEMPLATE_DIRS = (
os.path.join(ROOT_PATH, 'templates')
)


つぎに、テンプレートファイルを作成して、templatesにおいておきます。

つぎに、viewでテンプレートを読み込みます。

# -*- coding: utf-8 -*-
from django.http import HttpResponse
from django.template import Context, loader

def hello(request):
t = loader.get_template('a.html')
c = Context()
return HttpResponse(t.render(c))


まとめると、
まずテンプレートの場所をsettings.pyに記述。
viewsでテンプレートを読むためのモジュールをインポートして、
loaderでテンプレートを読み込み、コンテクストを渡して最後にrenderって流れです。

うーん、便利そうな感じです。あとモデルを使ってみて、どうデータを適用させるあたりで、よさげな予感がします。

Djangoではテンプレートエンジンは好きなのを使えるようです。
好きなモジュールを使ってテンプレートを読みこんで、レンダーって流れ(httpレスポンスに書き込む)ですればなんでもいいということなかな。

参考

: