python – 在jinja2中为未定义的属性引发异常

前端之家收集整理的这篇文章主要介绍了python – 在jinja2中为未定义的属性引发异常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要以下内容来引发异常:
jinja2.Template("Hello {{ a.x }}").render(a={})

Jinja2以静默方式返回a.x的空字符串,因此呈现为“Hello”.

如何让jinja2在未定义的属性上引发异常?

解决方法

from jinja2 import Template,StrictUndefined
print Template("Hello {{ a.x }}",undefined=StrictUndefined).render(a={})

这将引发异常:

File "<template>",line 1,in top-level template code
jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'x'

如果为a.x设置了值,那么它将按预期工作:

print Template("Hello {{ a.x }}",undefined=StrictUndefined).render(a={'x':42})

将打印:

Hello 42
原文链接:https://www.f2er.com/python/186119.html

猜你在找的Python相关文章