从你的代码中看,你试图在 Flask 应用中使用 redirect
来重定向到一个叫做 'result' 的页面。然而,url_for
需要一个函数名,而不是一个静态的URL。
首先,你需要定义一个名为 result
的路由,这样 Flask 才知道当 'result' URL 被请求时应该运行哪个函数。例如:
@app.route('/result')
def result():
return render_template('result.html')
然后,你可以使用 url_for
函数来生成 'result' 页面的 URL。注意,你需要将 'result' 传递给 url_for
函数,而不是直接写 'result'。例如:
return redirect(url_for('result'))
这样,当 '/prediction' URL 被请求并且 prediction
函数运行完成后,redirect
函数会告诉 Flask 将请求重定向到 '/result' URL。然后,result
函数会被运行并返回 'result.html' 页面。
另外,注意你的 return
语句的嵌套可能有问题。你需要在 prediction()
函数的末尾返回 redirect(url_for('result'))
,否则这个 redirect
不会被执行。例如:
@app.route('/prediction', methods=["GET", "POST"])
def prediction():
lg = joblib.load(r"/static/lg_models/Logistic.m")
prediction = lg.predict_proba(input_features)[0][1]
return redirect(url_for('result')) # 这里应该是在 prediction() 函数的末尾
希望这个解答能帮到你!