在Flask中,从URL和form一起发送参数



我的问题是:我有一个URL看起来像这样:domain.tld/results?音乐

在该页上,我有一个带有select字段的表单,然后我将其提交给Flask来执行一些SQL。

基本上,表单看起来像这样:

<form action="/filter" method="POST">
    <select name="sel_store">
        {% for store in stores %}
        <option value="{{ store }}">{{ store }}</option>
        {% endfor %}
    </select>
    <button type="submit">SEND</button>
</form>

在后面,它看起来像这样:

@app.route("/filter", methods=["POST", "GET"])
def filter():
    search_for = request.args.get("search_for")
    store = request.form["sel_store"]
    return redirect(url_for("results", search_for=search_for, store=store))

(results函数对search_forstore做一些SQL工作,顺便说一下)

然而,它似乎实际上并没有从URL获得任何参数,因为它一直给我一个NoneType对象错误。

我在这里做错了什么?

谢谢!

不确定这是否是正确的方法,但我设法通过这样做来让它工作:

<form action="{{ url_for('filtrare', search_for=request.args.get('search_for')) }}" method="POST">

相关内容

最新更新