Python 3.x 有没有一种方法可以通过编程使每行有4张卡?

Python 3.x 有没有一种方法可以通过编程使每行有4张卡?,python-3.x,flask,bootstrap-4,flask-wtforms,Python 3.x,Flask,Bootstrap 4,Flask Wtforms,我目前正在使用Python Flask和Bootstrap。 我希望得到它,这样,如果有4张卡在一行,它会自动创建一个新行 我刚才遇到的问题是,我的帖子越多,卡片排得越长越细。 当前代码: {% extends "base.html" %} {% block content %} <div class="card-deck"> {# Go through each forum post #} {% for post in forum_post

我目前正在使用Python Flask和Bootstrap。 我希望得到它,这样,如果有4张卡在一行,它会自动创建一个新行

我刚才遇到的问题是,我的帖子越多,卡片排得越长越细。 当前代码:

 {% extends "base.html" %}
{% block content %}
    <div class="card-deck">
        {# Go through each forum post #}
        {% for post in forum_posts.items %}

            <div class="card">
                <div class="card-body">
                    <span class="badge badge-info">{{ post.cat }}</span>

                    <h3 class="card-title"><a class="card-title"
                                              href="{{ url_for('forum_posts.view_post', forum_post_id=post.id) }}">{{ post.title }}</a>
                    </h3>
                    <h6 class="card-subtitle mb-2 text-muted">Written by: {{ post.author.username }}</h6>
                    <p>{{ post.text[:100] }}...</p>
                </div>
                <div class="card-footer">
                    <a href="{{ url_for('forum_posts.view_post', forum_post_id=post.id) }}"
                       class="btn btn-primary">Read
                        Blog Post</a>
                </div>
            </div>

        {% endfor %}
    </div>

{% endblock %}
{%extends“base.html”%}
{%block content%}
{浏览每个论坛帖子}
{forum_posts.items%}
{{post.cat}
作者:{post.author.username}
{{post.text[:100]}}

{%endfor%} {%endblock%}
您可以在python端编写此代码,以便使用数组数组在jinja2中更轻松:

>>> arr = [0,1,2,3,4,.....,102]
>>> forum_posts.items = []
>>> for i in range(int(len(arr)/4)):
        j = i * 4
        forum_posts.items.append([arr[j], arr[j+1], arr[j+2], arr[j+3]])
        # needs an error trap for IndexError on 103
然后在jinja2中:您可以双循环:

{% for row in forum_posts.items %}
    {% for item in row %}
         {# HTML here for a new row of at most 4 cards #}
在jinja2中,有一种方法可以使用可变循环计数器执行相同的操作,并设置新行HTML,例如,如果新循环索引是4的精确倍数:

{% for i, post in enumerate(forum_posts.items) %}
    {% if i % 4 == 0 %}
        {# new row code #}
    {% else %}
        {# regular row code %}
    {% endif %}
{% endfor %}