繁体   English   中英

如何使用Flask和HTML从python列表创建下拉菜单

[英]How to create dropdown menu from python list using Flask and HTML

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

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

所需: 选项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>

</select>
</body>
</html>

您需要在两个地方都使用{{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>

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

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

替换为

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM