首页 > 解决方案 > 从 Flask 中的 Select 中获取值

问题描述

我是烧瓶(和 StackOverflow)的新手,对于我所犯的任何错误,我提前道歉。

我正在尝试从烧瓶中的选择标签中获取选定的值。我已经尝试了有关堆栈溢出的类似问题的所有解决方案,但似乎没有一个对我有用。我很困惑,我需要一个按钮来提交我选择的值还是在选择一个选项时自动发送它。

我想要做的是从 html 中的 select 标记中获取值,并在此基础上在只读文本区域中显示一些文本。Flask 没有显示任何错误,但同时我也看不到该值。非常感谢!

Python代码

@app.route('/learn', methods=['GET','POST'])
def clearn():
    if request.method == 'POST':
        cat = request.form['category']
        print(cat)
    return render_template('index.html', clearn = cat)

HTML

<form action="/learn" method="POST" class="select_cat" id="select_cat">
    <div class="image fit">
        <div class="12u$">
            <div class="select-wrapper">
                <select name="category" id="category" form="select_cat">
                    <option value="0">- Select Procedure -</option>
                    <option value="opt1">Option 1</option>
                    <option value="opt2">Option 2</option>
                    <option value="opt3">Option 3</option>
                    <option value="opt4">Option 4</option>
                </select>
            </div>
        </div>
        <div class="12u$">
            <textarea class="clearn" name="message" id="message" placeholder="Procedure" rows="6" readonly>{{clearn}}</textarea>
        </div>
    </div>
</form>

标签: pythonhtmlflaskdrop-down-menurequest.form

解决方案


PY file

@app.route('/learn', methods=['GET','POST'])
@app.route('/learn/<category>/') //in here you can define the datatype if needed ie. @app.route('/learn/<int:category>/') 

def clearn(category):
    if request.method == 'POST':
    return render_template("index.html", category= category)

HTML file

<div class="12u$">
    <div class="select-wrapper">
        {{category}}
    </div>
</div>

推荐阅读