【问题标题】:How to append user input from front end (i.e. HTML form) to the url如何将用户输入从前端(即 HTML 表单)附加到 url
【发布时间】:2020-12-22 21:36:56
【问题描述】:

我有一个基本的 HTML 表单,其中包括一个文本框和一个提交按钮。 比方说,用户在输入框中输入了一个输入。我想将该输入附加到主页的现有 URL。

示例:主页的 URL 为“localhost/home”,用户在文本框中输入“数据”。

点击提交按钮后,URL 应附加输入内容,类似于:“localhost/home/data”(在显示使用烧瓶从后端获取的结果时)。

所以,从技术上讲,当我点击提交时,我想被重定向到“localhost/home/data”。

我正在使用下面的 HTML 表单。

    <form action="/home" method="POST">
        <input type=text name="name">
        <input type=submit name="submit">
    </form>

并将其用作烧瓶代码 sn-p:

    @app.route('/home', methods=['POST', 'GET'])
    def basic():
        if request.method == 'POST':
            path = (my path to json file)
            with open(path) as f:
                data = json.load(f)
            format_list=data[name]
            return format_list

        return render_template('temp.html')

如何从附加到 URL 的表单中获取输入的参数? 谢谢!

【问题讨论】:

  • 如果您希望在提交表单之前添加它,您需要通过 JavaScript 执行此操作(因为逻辑还不会到达 Python 层)。如果您想在提交表单之后执行此操作,则需要在 Python 中完成。如果没有进一步澄清问题,就很难回答,因为选择太多了。

标签: python html api rest flask


【解决方案1】:

当您将表单提交与烧瓶一起使用时,表单在烧瓶对象上作为flask.request.form python 字典公开。从这里,您可以访问发布到您的端点的内容:

@app.route('/home', methods=['POST', 'GET'])
def basic():
    if request.method == 'POST':
        path = request.form['name']

请注意,您应该为输入字段提供id 属性:

<input id="name" name="name">

如果您想将其附加到路径或类似性质的东西,那么您可以进一步查看flask.redirect

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    相关资源
    最近更新 更多