我正在使用Jinja2创建电子邮件通知消息,主要是错误通知。
有时我会收到有关错误详情的无效或不完整数据。毕竟,当发生这种情况时,这是一个错误的情况。例如。可能缺少dict项目或值类型可能不正确。在这种情况下,渲染失败,但必须发送错误通知。
我可以在异常处理程序中执行以下操作:
我真正想要的是以最好的方式呈现模板,跳过所有错误。有没有办法在Jinja2中做到这一点?
答案 0 :(得分:0)
在任何需要的地方使用defaults。还处理未定义的变量:
default(value, default_value=u'', boolean=False)
:如果值未定义,它将返回传递的默认值,否则返回变量的值:
{{ my_variable|default('my_variable is not defined') }}
如果定义了变量,则输出
my_variable
的值,否则输出'my_variable is not defined'
。如果要将默认值与评估为false的变量一起使用,则必须将第二个参数设置为 true :{{ ''|default('the string was empty', true) }}
如果您根据数据创建更复杂的结构,则可以使用none
:
{% if p is not none %}
{{ p.User['first_name'] }}
{% else %}
NONE
{%endif %}