Я новичок в Python и Flask программировании. При разработке своего веб-сайта я пытаюсь получить значение, выбранное в раскрывающемся списке bootstrap в коде python. Это то, что я пытался -
Python код - rout.py
@app.route("/index", methods=['GET','POST'])
def index():
form = IndexForm()
data = ['Red', 'Green', 'Blue']
if form.validate_on_submit():
posts = get_data(color=request.form.get("color_dropdown"))
return render_template('index.html', title='My Form', form=form, posts=posts, data=data)
return render_template('index.html', title='My Form', form=form, data=data)
HTML код - index. html
Раскрывающийся список заполняется, как и ожидалось, элементами списка 'data'.
<div class="dropdown">
<div class="input-group-btn">
<button class="btn btn-info btn-md dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" name="color_dropdown" >
Select Color
<span class="caret"></span>
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
{% for datum in data %}
<a class="dropdown-item" href="#">{{ datum }}</a>
{% endfor %}
</div>
</div>
</div>
Пока все хорошо. ![enter image description here](https://i.stack.imgur.com/sUifR.png)
Когда я выбираю цвет, например. «Красный», он также виден на кнопке с использованием jscript -
<script>
$(".dropdown-menu a ").click(function(){
$(this).parents(".input-group-btn").find('.btn').text($(this).text());
});
</script>
И он выглядит выше. ![enter image description here](https://i.stack.imgur.com/2BGmX.png)
Теперь, когда я пытаюсь извлечь значение выбранного параметра из выпадающего списка, используя - color=request.form.get("color_dropdown")
, он всегда возвращает None
.
Форма класса - forms.py
class IndexForm(FlaskForm):
car = StringField('Car', validators=[DataRequired()])
submit = SubmitField('Submit')
Как я могу получить значение выбранного параметра («Красный» в приведенном выше случае) в rout.py и назначить его переменной цвета? Заранее спасибо.