我想使用模板来呈现一个融合了Jinja2和Markdown的页面,模板长这样:
{% block title %}{{ title }}{% endblock %}
# {{ title[0] }}
# {{ title[1] }}
## Introduction
我可以正常生成上面的HTML代码,但是由于我正在使用这个脚本做一个自定义的作者应用程序,所以我想能够为每种类型的条目定义主模板。
当我尝试通过扩展主模板template.html
来呈现上面的页面时:
{% extends 'template.html' %}
{% block title %}{{ title }}{% endblock %}
# {{ title[0] }}
# {{ title[1] }}
## Introduction
我得到了一个错误:
Traceback (most recent call last):
File "compiler.py", line 55, in <module>
template = Template(text).render(parser.vars)
File "/usr/lib/python2.7/site-packages/jinja2/environment.py", line 891, in render
return self.environment.handle_exception(exc_info, True)
File "<template>", line 1, in top-level template code
TypeError: no loader for this environment specified
你可以看到有问题的那一行是template = Template(text).render(parser.vars)
。是否有方法能够渲染上述模板代码并能够扩展
template.html
?
get_template
可以使用字符串输入?我会再次阅读文档... - BlenderDictLoader
,但是回溯信息完全奇怪:jinja2.exceptions.TemplateNotFound: (我的模板 HTML 在这里)
。我正常定义了dict
,{'templates/article.html': '...', ...}
,但只有在我反转它时才会被读取。什么情况...? - BlenderDictLoader
对我来说是有效的(我在本地更改了我的示例并且它可以工作)。你确定你使用的路径是正确的吗?例如,在{% extends "name.html" %}
中使用的路径是否与字典键完全匹配? - samplebias