我正在使用Pyramid模板引擎开发jinja2项目。在jinja2 documentation之后,我找到了一种从独特视图加载不同模板的方法。但考虑到模块pyramid_jinja2已在我的应用中配置了模板的默认路径。我想知道是否有另一种更优雅的方式来完成这项工作。这是我的方法:
from jinja2 import Environment, PackageLoader
@view_config(context=Test)
def test_view(request):
env = Environment(loader=PackageLoader('project_name', 'templates'))
template = env.get_template('section1/example1.jinja2')
return Response(template.render(data={'a':1,'b':2}))
我可以从某个地方获取 pyramid_jinja2 环境的实例,这样我就不必再次在视图中设置模板的默认路径了吗?
答案 0 :(得分:1)
以下就足够了:
from pyramid.renderers import render
template = "section/example1.jinja2"
context = dict(a=1, b=2)
body = render(template, context, request=request)
要配置加载,请执行__init__.py
:
config.add_jinja2_search_path('project_name:templates', name='.jinja2', prepend=True)