Как извлечь некоторые элементы из массива - PullRequest
0 голосов
/ 17 мая 2019

В моем приложении flask / jinja2 я получаю несколько строк из базы данных для печати в таблице.Для каждой строки я хочу определить идентификатор для строки из первого элемента, определить класс строки со вторым элементом и распечатать остальную часть строки как данные таблицы.Я делаю это так, это работает, но чувствует себя немного глупо:

{%- for  item in row %}
    {% if loop.index==1 %}
      <tr id="rec{{item}}" 
    {% elif loop.index==2 %}
     class="{{item}}" >
    {% else %}
      <td>{{item}}</td>
    {% endif %}
  {% endfor -%}</tr>

Я хотел бы сделать что-то вроде:

id="rec"+row.pop()
class=row.pop()

затем использовать переменные id и class для определениястрока, а затем итерация по тому, что осталось от списка.Возможно ли это в jinja2?

(используя jinja 2.8, установленную на Debian 9, но, конечно, можно обновить, если это улучшит ситуацию)

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Я думаю, что вы можете использовать нарезку в шаблонах Jinja, не могли бы вы попробовать, так как я не могу проверить это atm:

    <tr id="rec{{row[0]}}" 
    class="{{row[1]}}" >
    {% for  item in row[2:] %}
      <td>{{item}}</td>
    {% endfor -%}
    </tr>
1 голос
/ 17 мая 2019

Вы можете получить первые элементы из массива, используя их индексы, и использовать фрагмент (например, row[2:]) массива для цикла for:

<tr id="rec{{row[0]}}" class="{{row[1]}}" >
{%- for item in row[2:] %}
   <td>{{item}}</td>
{% endfor -%}</tr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...