使用“GET”在Flas中显示所选选项

2024-04-19 11:11:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学烧瓶。我想开始创建一个简单的表单选择页面。我的意图是让用户选择该选项,然后使用GET在另一个页面中显示它。 我正在尝试以下代码。你知道吗

from flask import Flask, render_template, request, redirect
app = Flask(__name__)

@app.route('/')
def search():

    return render_template('select_doc.html')

@app.route('/view_doc/<k>')
def view_doc(k):
    return render_template('view_doc.html',k=k)

if __name__ == '__main__':
    app.run(debug=True)

这是我的选择_文档.html你知道吗

{% block content %}

<body>
    <h1>Pick your plag</h1>
        <form action='/view_doc'>


                <select name="k">
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                </select>
<input type='submit' value='Select'>
</form>
</body>
{% endblock content %}
</html>

这是我的观点_文档.html你知道吗

<html>
    {% block content %}
    <body>
      <br>{{ k }}<br>
    </body>
        {% endblock content %}
        </html>

但是,我得到一个错误,说404 not found。 这是我的运行.py. 我做错什么了?你知道吗


Tags: nameviewappflaskdocvaluehtmlbody
2条回答

在视图中需要角括号

@app.route('/view_doc/<k>')
def view_doc(k):
    return render_template('view_doc.html',k=k)

您还应该稍微整理一下代码,使其更具可读性。你知道吗

您的路由需要<k>参数,但它不是通过表单发送的。使用method="get"(未指定时为默认值)点击提交时,请求url将为/results?k=value。你知道吗

因此,您要么从路由中删除<k>,然后从querystring中提取它,要么编写一些js将值放在url上,就像这样/results/value。最简单的选项是第一个,所以您只需执行request.args.get('k')来提取k,并在render_template中使用它。你知道吗

相关问题 更多 >