我创建的模板文件包含以下内容:
{% if type({'a':1,'b':2}) is dict %} print "Oh Yes!!" {% else %} print "Oh No!!!" {% endif %}
然后Jinja2回应说:
TemplateAssertionError: no test named 'dict'
我对Jinja2和Flask完全陌生
你正在寻找mapping测试:
{% if {'a': 1, 'b': 2} is mapping %} "Oh Yes!" {% else %} "Oh No!" {% endif %}
Jinja 是不是Python的,因此你不必访问所有内建(type与print不存在,例如,除非你将它们添加到背景下,在瓶,你这样做与context_processor装饰)。
type
print
context_processor
你实际上根本不需要print。默认情况下,所有内容都会输出(除非你extends位于父模板的子模板中,在这种情况下,你可以做一些有趣的事情,例如NULL Master回退,因为仅输出具有主模板中可用名称的块)。
extends