繁体   English   中英

无法使用 html 前端将输入传递给 python 脚本使用 flask

[英]cannot get html front end to pass input to python script using flask

因此,我正在构建一个 webapp,它从购物网站获取链接,然后通过 python 脚本运行它,该脚本解释数据,将其存储在数据库中并填充表格以供参考。

我遇到了几个问题:

  1. 如果我将链接放入前端输入(html)然后提交它只会带我到“页面无法正常工作 HTTP 错误 405”。 我不知道该怎么办。

  2. 更紧迫的问题是,即使我相信我通过 flask 正确路由了输入,但当我在前端“RuntimeError:在请求上下文之外工作”运行 python 脚本时遇到了这个问题。

我尝试了这些现有帖子中提到的一些建议,但无济于事:

将数据从 HTML 表单发送到 Flask 中的 Python 脚本

将 python 脚本与 html 按钮和 flask 连接

当将脚本关联为 python 脚本的输入变量时,我还尝试更改脚本本身以使用 getvalue() 而不是 getvalue。

这是我来自 app.py 的路线代码

@app.route("/", methods=['POST'])
 def getvalue():
   HTML_Info = request.form['data_bridge']
   return HTML_Info

HTML 输入的代码

<form name="passdata" action="{{ url_for('getvalue') }}" method="POST">
        <input type='text' name="data_bridge" placeholder="paste shoe link here">
        <input type="submit">
    </form>

python 代码只是导入应用程序文件和 getvalue function,然后将其分配给变量。

如果你们能帮我解决这个问题,我将不胜感激。

我假设您想从用户那里获取输入(例如鞋链接),然后根据输入进行一些操作。

要从/路径访问 HTML 表单,您需要在该路由中启用GETPOST请求。 否则,当您尝试从浏览器访问根路径/时,您将收到 HTTP Method not allowed 错误。

app.py

from flask import Flask, render_template, request

app = Flask(__name__)


def get_value_related_info(value):
    return f"You have entered {value}"


@app.route('/', methods=['POST', 'GET'])
def getvalue():
    if request.method == "POST":
        HTML_Info = request.form['data_bridge']
        return get_value_related_info(HTML_Info)
    return render_template('form.html', text="")


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

Output:

  • 表单提交前:

表单提交前

  • 表单提交后:

表单提交后

templates/form.html

<html>
<head>
    <title>Form example</title>
</head>
<body>
<form name="passdata" action="{{ url_for('getvalue') }}" method="POST">
    <input type='text' name="data_bridge" placeholder="paste shoe link here">
    <input type="submit">
</form>
</body>
</html>

解释:

  • 我在get_value_related_info方法中模拟了用户输入的功能。

参考:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM