以前试过一些django的snippets关于集成jinja2的,但是那些代码段没有办法使用generic view,这很恼人。今天整理代码,觉得jinja2的集成方式可以优化,于是修改了代码,并已提交到了djangosnippets。
http://www.djangosnippets.org/snippets/1844/
大家觉得有用的话在djangosnippets上投一票useful哈,外加bookmark,呵呵。
有什么问题可以告诉我。
只需在yourproject/urls.py 中:
djangojinja2.install()
也可以使用指定的Envirionment
from jinja2.sandbox import SandboxedEnvironment
djangojinja2.install(SandboxedEnvironment)
也可以使用自己构造的Environment对象
env=Environment(...)
...
djangojinja2.install(env)
在settings.py中可以对jinja2进行配置
TEMPLATE_DIRS = (path.join(path.dirname(__file__),"templates"),)
JINJA_GLOBALS=['myapp.myutil.foo',]
JINJA_FILTERS=['django.template.defaultfilters.date',]
JINJA_TESTS=('foo.mytest',)
JINJA_EXTS=['jinja2.ext.i18n']
在app.views中不需要有什么改变
from django.shortcuts import render_to_response
def foo(request):
return render_to_response('/myjinja2.html',{'request':request})
test in django development version of r12026 , jinja2 2.2.1, python 2.5