jinja2 - 显示没有括号/引号的项目

时间:2018-02-03 18:30:30

标签: flask jinja2

我正在向Flask View返回一个列表,但是我希望在没有括号或单引号的情况下显示它。

我的HTML仅在引导程序下拉列表中格式化

<div class="dropdown">
    <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
      Park Names
    </button>
    <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
      {% for park in parks_found %}
      <a class="dropdown-item" href="#">{{ park }}</a>
      {% endfor %}
    </div>
  </div>

如下所示输出下拉 - 我希望在没有括号/引号的情况下显示它 - 非常感谢任何帮助。

enter image description here

1 个答案:

答案 0 :(得分:2)

看起来每个park项都是一个项目的列表而不是字符串。换句话说,parks_found包含列表列表,而不是公园名称列表作为字符串。

解决方案

您可以确保parks_found在传递之前是一个字符串列表,或者您可以从中获取第一个项目。或者,如果parks_found中的每个项目可能实际包含一个列表,则为每个park项添加另一个循环。

视图

def view():
    return render_template('index.html',
                           parks_found=[['Park A'], ['Park B']],
                           flat_parks_found=['Park A', 'Park B'])

HTML

<h1>Original</h1>
{% for park in parks_found %}
<p>{{ park }}</p>
{% endfor %}

<h1>Grab first item</h1>
{% for park in parks_found %}
<p>{{ park[0] }}</p>
{% endfor %}

<h1>Flattaned list</h1>
{% for park in flat_parks_found %}
<p>{{ park }}</p>
{% endfor %}

HTML输出

原始

['Park A']

['Park B']

抓住第一项

Park A

Park B

清单

Park A

Park B