2

假设这是我的代码:

from jinja2 import Environment, PackageLoader

def render(path, **kwargs):
  env = Environment()
  env.loader = PackageLoader('lemma.app.views', '')
  template = env.get_template(path)

  return str(template.render(**kwargs))

这是我的模板:

{% extends "layouts/application.html" %}

{% block content %}
  bla
{% endblock %}

有没有办法在我的代码中设置布局,而不是在我的模板中,或者我应该{% extends "layouts/application.html" %}像白痴一样在每个模板中编写?

4

2 回答 2

0

您可以在子模板的扩展中使用变量:{% extends layout %}。这使得更改您的基础/布局模板变得容易,并且可以选择另一个基础/布局模板。我使用扩展变量,因为对于同一个孩子的不同布局模板。子模板是网页的一部分或fancybox iframe 的一部分。

于 2012-11-07T23:36:13.037 回答
0

最后我定义LemmaLoader了继承自的类PackageLoader,并覆盖了方法get_source

于 2013-02-21T05:03:21.790 回答