如何将变量从Python Flask传输到JavaScript?

如何将变量从Python Flask传输到JavaScript?,javascript,python,flask,get,fetch,Javascript,Python,Flask,Get,Fetch,我正在用Python Flask和JavaScript为我的机器学习项目开发一个简单的网站。它有一个表单,从用户那里获取数据,然后预测目标并将其发送回用户。我将表单的操作设置为“index”,当表单提交时,应该加载页面“index.html”。我尝试使用POST方法从JavaScript中获取数据,但另一方面,我无法将答案从Python传输到JavaScript。 我的POST方法代码如下所示: @app.route('/',methods = ['POST', 'GET']) def myFu

我正在用Python Flask和JavaScript为我的机器学习项目开发一个简单的网站。它有一个表单,从用户那里获取数据,然后预测目标并将其发送回用户。我将表单的操作设置为“index”,当表单提交时,应该加载页面“index.html”。我尝试使用POST方法从JavaScript中获取数据,但另一方面,我无法将答案从Python传输到JavaScript。 我的POST方法代码如下所示:

@app.route('/',methods = ['POST', 'GET'])
def myFunction():
if request.method == "POST":
    myVariable = request.form["example"]
    answer = myModel.predition(myVariable)

    return redirect(url_for("index"))

else:
    return render_template("myWeb.html")
@app.route('/index',methods = ['POST', 'GET'])
def answer():
if request.method == 'GET':
    message = {"prediction"}
    return jsonify(message)
我尝试在Flask中使用GET方法并在JS中获取答案,但是由于我的答案变量在myFunction()中,所以我不能在它之外使用GET。此外,当我试图显示一个简单的字符串作为答案时,它不起作用。我的代码是这样的:

@app.route('/',methods = ['POST', 'GET'])
def myFunction():
if request.method == "POST":
    myVariable = request.form["example"]
    answer = myModel.predition(myVariable)

    return redirect(url_for("index"))

else:
    return render_template("myWeb.html")
@app.route('/index',methods = ['POST', 'GET'])
def answer():
if request.method == 'GET':
    message = {"prediction"}
    return jsonify(message)
我的JS是:

fetch('/index')
    .then(function (response) {
          return response.json();
  }).then(function (text) {
      console.log('GET response:');
      console.log(text); 
  });
我真的不知道该如何解决这个问题并在index.html上成功地显示我的答案。我在索引页上出现内部服务器错误。

message={“prediction”}
是一个包含字符串的集合。通常,集合是不可JSON序列化的。您必须在此处使用一个列表
message=[“prediction”]
(或者删除括号以作为字符串返回)


顺便说一句:你看起来破了。。。可能是复制粘贴问题,但请检查您的代码缩进是否正确。

完全不相关,但对那些获取回调使用
函数
确实很奇怪。arrow函数在那里更干净、可读性更强,例如
.then(response=>response.json())