jinja2:获取列表中的第一项,无论列表是否存在

Joh*_*etz 5 html jinja2 flask

对于下面的第一行,jinja2 模板渲染是否x存在。但是,在第二行中,模板仅在x是现有列表时才呈现。如果不是,我会收到错误(假设如果x存在,它始终是一个至少包含一项的列表):

<p>x: {{ x }}</p>

<p>x[0]: {{ x[0] }}</p>
UndefinedError: 'x' is undefined
Run Code Online (Sandbox Code Playgroud)

有没有比我这里更好的方法来检查变量是否存在并获取其第一项(x我的模板中有大量实例,其中的名称更长,我不想每次都用 if 子句将其包装起来) ):

{% if x %}
  <p>x[0]: {{ x[0] }}</p>
{% endif %
Run Code Online (Sandbox Code Playgroud)

dav*_*ism 6

Jinja 支持内联if else语句,并且与 Python 不同,它还允许省略else.

{{ x[0] if x }}
Run Code Online (Sandbox Code Playgroud)