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>
タイプミスがあります。colours
をcolour
に置き換えてください
<option value= "{{colour}}" SELECTED>{{colours}}</option>"
に置き換える
<option value= "{{colour}}" SELECTED>{{ colour }}</option>"
<!-- ^^^^ -->
両方で{{colour}}
を使用する必要があります(2番目の{{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>