djangoでテンプレート
2008/10/25
django
python
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'),
)
(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')
)
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))
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レスポンスに書き込む)ですればなんでもいいということなかな。
参考
: