【问题标题】:How to create dropdown menu from python list using Flask and HTML如何使用 Flask 和 HTML 从 python 列表创建下拉菜单
【发布时间】:2018-02-03 05:58:36
【问题描述】:

我正在尝试使用 python 脚本中的信息在 HTML 中创建一个下拉菜单。到目前为止,我已经让它工作了,但是,html 下拉列表将列表中的所有 4 个值显示为 4 个选项。

当前:选项1:红、蓝、黑橙; 选项 2: 红色、蓝色、黑色、橙色等(链接中的屏幕截图) Current

期望:选项 1: 红色 选项 2: 蓝色 等等

如何使python列表分开?

dropdown.py

from flask import Flask, render_template, request
app = Flask(__name__)
app.debug = True


@app.route('/', methods=['GET'])
def dropdown():
    colours = ['Red', 'Blue', 'Black', 'Orange']
    return render_template('test.html', colours=colours)

if __name__ == "__main__":
    app.run()

test.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Dropdown</title>
</head>
<body>
<select name= colours method="GET" action="/">
    {% for colour in colours %}
    <option value= "{{colour}}" SELECTED>{{colours}}</option>"
    {% endfor %}
</select>

</body>
</html>

【问题讨论】:

    标签: python html flask


    【解决方案1】:

    您需要在两个地方都使用{{colour}}(而不是第二个位置的{{colours}}):

    <select name="colour" method="GET" action="/">
        {% for colour in colours %}
            <option value="{{colour}}" SELECTED>{{colour}}</option>"
        {% endfor %}
    </select>
    

    注意在循环中使用selected会为所有选项添加selected属性,最后一个会被选中,你需要做的如下:

    <select name="colour" method="GET" action="/">
      <option value="{{colours[0]}}" selected>{{colours[0]}}</option>
      {% for colour in colours[1:] %}
        <option value="{{colour}}">{{colour}}</option>
      {% endfor %}
    </select>
    

    【讨论】:

      【解决方案2】:

      您有错字,请将colours 替换为colour

      <option value= "{{colour}}" SELECTED>{{colours}}</option>"
      

      替换为

      <option value= "{{colour}}" SELECTED>{{ colour }}</option>"
                                           <!--  ^^^^ -->
      

      【讨论】:

        猜你喜欢
        • 2020-11-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-11
        • 1970-01-01
        • 1970-01-01
        • 2019-05-12
        • 2022-01-27
        相关资源
        最近更新 更多