我尝试使用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>
</select>
</body>
</html>
答案 0 :(得分:12)
您需要在两个地方使用{{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>
答案 1 :(得分:6)
您有拼写错误,请将colours
替换为colour
<option value= "{{colour}}" SELECTED>{{colours}}</option>"
替换为
<option value= "{{colour}}" SELECTED>{{ colour }}</option>"
<!-- ^^^^ -->