[英]cannot get html front end to pass input to python script using flask
因此,我正在构建一个 webapp,它从购物网站获取链接,然后通过 python 脚本运行它,该脚本解释数据,将其存储在数据库中并填充表格以供参考。
我遇到了几个问题:
如果我将链接放入前端输入(html)然后提交它只会带我到“页面无法正常工作 HTTP 错误 405”。 我不知道该怎么办。
更紧迫的问题是,即使我相信我通过 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 表单,您需要在该路由中启用GET
和POST
请求。 否则,当您尝试从浏览器访问根路径/
时,您将收到 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.