Flask变量未传输到下一页

时间:2019-04-28 21:16:13

标签: python flask

我对Flask有问题。 我在完成路由和声明任何函数之前先声明一个变量。该变量最初设置为空字符串。

然后,当用户单击“提交”按钮时,该变量的值将更改,并且由于在其他任何操作之前都已声明该变量,因此应该可以从另一个函数(该函数呈现另一个页面)进行访问。

我可以访问该变量,但是由于某些原因它为空。

这是我的代码:

import torch
import numpy as np
y =[1, 2, 3, 5, 9, 1]
print("numpy=",np.median(y))
print(sorted([1, 2, 3, 5, 9, 1]))
yt = torch.tensor(y,dtype=torch.float32)
ymax = torch.tensor([yt.max()])
print("torch=",yt.median())
print("torch_fixed=",(torch.cat((yt,ymax)).median()+yt.median())/2.)

和HTML:

@

我在哪里弄错了?

2 个答案:

答案 0 :(得分:1)

请使用session存储请求之间的值:

  

除了请求对象外,还有一个名为会话的第二个对象,它使您可以存储从一个请求到下一个请求的特定于用户的信息。这是在您的cookie之上实现的,并以加密方式对cookie进行签名。这意味着用户可以查看您Cookie的内容,但不能对其进行修改,除非他们知道用于签名的密钥。

例如:

from flask import session

app.secret_key = 'dev'

@app.route("/", methods=["GET", "POST"])
def index():
    pred_s = str(prediction)
    m = Money(amount=pred_s, currency='EUR')

    session['predicted_output'] = str(m)  # store it to session
    return redirect(url_for("result"))


@app.route("/result")
def result():
    predicted_output = session['predicted_output']  # get it from session
    return render_template("result.html", the_final_value=predicted_output)

答案 1 :(得分:0)

您需要在重定向期间发送数据,然后再捕获数据,就像这样:

setUploads($conn,$imgs);

    function setUploads($conn,$file) {
        if (isset($_POST['uploadSubmit'])) { . . .