Django1.94にjinja2を入れてみる
Djangoにjinja2を導入する方法を教えてくれているサイトは数多くあるが、
ヴァージョンが違ったりして、うまくいかないことが多い。
今回はDjango1.94
Python3.5
でjinja2を導入してみた。
Jinja2をインストールする
これは簡単で以下のようにpipでインストールしてあげるだけである。
Setting.pyをいじってみる。
以下のサイトを参考にした。
http://jonathanchu.is/posts/upgrading-jinja2-templates-django-18-with-admin/
TEMPLATES = [ { 'BACKEND': 'django.template.backends.jinja2.Jinja2', 'DIRS': [ os.path.join(BASE_DIR, 'templates/jinja2'), ], 'APP_DIRS': True, 'OPTIONS': { 'environment': 'myproject.jinja2.environment', }, }, { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages', ], }, }, ]
これはそのまま入れるだけでよいが、myproject、DIRSなどは自分の使っている名称などに変更してあげる必要がある。
フォルダ構成
$ tree myproject myproject ├── myproject │ ├── __init__.py │ ├── jinja2.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── templates │ └── jinja2 │ ├── base.html │ ├── home.html
以上のようなフォルダ構成にする。
また、jinja2.pyはDjangoのアプリを作成したときに自動には作られないので自分で作ってあげる必要がある。
内容は以下のものをコピペするだけでよい。
from django.contrib.staticfiles.storage import staticfiles_storage from django.core.urlresolvers import reverse from jinja2 import Environment def environment(**options): env = Environment(**options) env.globals.update({ 'static': staticfiles_storage.url, 'url': reverse, }) return env
これでうまくいったりして参考になれば幸いです。