Как остановить цикл for?

Создал функцию чтобы она выводила все карточки, как сделать так чтобы по достижению 8 карточек на экране она далее не выводила?

<div class="row row-cols-1 row-cols-md-4 g-4">
  {% for tick in tickets %}
    <div class="col">
      <div class="card">
        <img src="https://proprikol.ru/wp-content/uploads/2019/11/kartinki-balet-3.jpg" class="card-img-top">
        <div class="card-body">
          <h5 class="card-title">{{ tick.ticket_name }}</h5>
          <p class="card-text">{{ tick.ticket_body }}</p>
          <a href="#" class="btn btn-primary">Купить</a>
        </div>
      </div>
    </div>
  {% endfor %}


Ответы (1 шт):

Автор решения: Ret7020

Судя по коду вы используете bootstrap. В нём насколько я помню из коробки есть пагинация, благодаря которой вы сможете ограничить количество карточек отображаемых на одной страницы. Но если прям очень нужно именно отображать только 8 первых карточек, то лучше эту задачу решать не на стороне шаблонизатора, а на стороне бэкэнда. Для этого, когда вы передаёте в render_template делайте срез, т.е. tickets[:8].


P.S. не помню точно, но возможно jinja2 поддерживает срезы внутри тэмплейтов, если да, то можно внутри фора написать что - то вроде: for tick in tickets[:8]

→ Ссылка