python - Flask 循环未按预期在 Bootstrap 下拉菜单中迭代

标签 python flask bootstrap-4 jinja2

我正在尝试创建一系列下拉按钮,其中下拉按钮由字典键填充,下拉项由与每个键关联的列表填充。

目标是将字典发送到 html 模板,并根据字典内容创建所有按钮。然后,下拉菜单将重定向到所选的任何位置。

下面 HTML 中的循环将在我第一次运行时运行,但之后所有下拉项都设置为字典中的最后一个列表。

Python代码;

from flask import Flask, render_template
app = Flask(__name__)
names = {'Star Wars': ['Luke', 'Han', 'Chewie'], 'Avengers': ['Iron Man', 'Hulk', 'Spiderman']}

@app.route('/', methods=['GET', 'POST'])
def index():

    return render_template('indexdrop.html', names=names)

app.run(debug = True)

HTML;

....标题省略...

<div class = "jumbotron">
<div class="btn-group">
    {% for idx in names.keys() %}
    <button type="button" class="btn btn-danger"> {{ idx }}</button>
    <button type="button" class="btn btn-danger dropdown-toggle " data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
        <span class="sr-only">{{ idx }}</span>
    </button>
    <div class="dropdown-menu">
        {% for item in names[idx] %}
        <a class="dropdown-item" href="#">{{ item }}</a>
        {% endfor %}
    </div>
    {% endfor %}
    </div>
</div>

非常感谢任何帮助!

错误下拉的截图: enter image description here

最佳答案

<div class="btn-group"> div 应该是 for 循环的一部分。目前,您只有一个 btn-group其中有两个 dropdown-menu里面有 div。

第二个下拉菜单上的切换按钮正在寻找 dropdown-menu父级内的 div btn-group (即带有星球大战角色的 div)。

{% for idx in names.keys() %}
    <div class="btn-group">
        ...
        ...
    </div>
{% endfor %}

关于python - Flask 循环未按预期在 Bootstrap 下拉菜单中迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55923343/

相关文章:

python - Pandas:如果是同一年,则将一列乘以另一列

python - 在函数中打印返回值

python - Python SQLAlchemy中的依赖问题?

flask - 使用Flask-sqlalchemy,无需运行应用程序即可将模型连接到数据库

python - 有没有办法在函数内模拟 flask 请求对象?

javascript - 有没有办法知道用户是否使用类似于使用 col-sm 的 flexbox 的小型设备?

javascript - JQuery 和 Bootstrap 4 Popover 冲突?

python - 使用 Keras 使用多个指标进行预测

python - 输入 0 与层 conv2d_121 : expected ndim=4, 发现 ndim=5 不兼容

javascript - 如何创建以js为段落的垂直制表符?