«Нет» печатается перед элементами списка jinja2 - PullRequest
0 голосов
/ 20 апреля 2020

Я создаю Flask веб-приложение, которое отправляет список словарей в качестве переменной в мой шаблон HTML. Я извлекаю значения в словаре и добавляю их в список, используя для l oop. Я присваиваю переменные в моих HTML элементах значениям в списке. Переменные HTML перебирают список элементов с помощью индексации.

<div class="container">
     {% set elem = [] %}
     {% for key, value in future[0].items() %}
         {{ elem.append(value) }}
     {% endfor %}
     <div class="future-dayofweek">
         <h3>{{ elem[0] | default('---') }}</h3>
     </div>
     <div class="future-weathericon">
         <i class="wi {{elem[1] | default('wi-cloud')}}"></i>
     </div>
     <p class="future-conditions">{{elem[2] | default('--')}}</p>
     <div class="future-highlow">
         <p class="future-temprange">
             <span class="high">{{elem[3] | default('-')}}</span> | <span class="low">{{elem[4] | default('-')}}</span></p>
     </div>
 </div>

Моя проблема заключается в том, что, когда файл HTML отображается, я получаю значение «None», напечатанное до фактических значений. Есть 5 "Нет", что также длина моего списка. Я изменил способ получения значений словаря, исключив выражение «ключ», но это не помогло. Оказано HTML веб-страница . Скриншот инструментов разработчика

1 Ответ

0 голосов
/ 20 апреля 2020

{{ elem.append(value) }} это возвращение None и записано в l oop, поэтому None оценивается столько раз, сколько длина future[0].items().

Вы можете просто использовать .values(), если вам нужно все значения dict. {% set elem = future[0].values() %}.

Подробнее о списках и dicts .

...