在 bootstrap python flask 中获取下拉选择的值

Get the dropdown selected value in bootstrap python flask

我有这个下拉菜单是用 bootstrap 制作的,有几个选项,我想用 flask 获取所选值的数据。

HTML:

<div class="dropdown">
            <button class="btn btn-secondary dropdown-toggle text-right " type="button" id="dropdownMenu3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                age
            </button>
            <div class="dropdown-menu pre-scrollable" aria-labelledby="dropdownMenu3">
                {% for i in range(110) %}
                    <button class="dropdown-item text-right " type="button">{{i}}</button>
                {% endfor %}
            </div>
        </div>

Python:

from flask import Flask, render_template, request
def create_app():
    app = Flask(__name__)

    @app.route('/', methods=['POST', 'GET'])
    def home():


        return render_template("home.html")
     
    return app

创建一个带有下拉列表和按钮的表单用于提交表单,然后创建提取所选选项并通过 HTTP POST 方法将其发送到后端的 js 脚本。

Bartosz 的回答是有效的,但下面的代码在不使用 Javascript

的情况下也有同样的效果

html

<form method="POST" action="{{ url_for('test') }}">
<div class="dropdown">
            <button class="btn btn-secondary dropdown-toggle text-right " type="button" id="dropdownMenu3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                age
            </button>
            <div class="dropdown-menu pre-scrollable" aria-labelledby="dropdownMenu3">
                {% for i in range(110) %}
                    <button name = "age" value = {{i}} class="dropdown-item text-right " type="submit">{{i}}</button>
                {% endfor %}
            </div>
        </div>
    </form>

app.py

@app.route('/test', methods=['POST', 'GET'])
def test():
    if request.method == 'POST':
        print(request.form.get('age'))
    return render_template("test.html")

您需要将下拉菜单 div 包裹在表单中并指定其操作。