Skip to main content
 首页 » 编程设计

python-2.7之如何将参数传递到 Flask 的 redirect(url_for()) 中

2024年11月24日19bluestorm

我试图了解如何最好地使用 Flask 重定向和传递参数

下面是我的代码,我发现 xy没有进入模板。

我的语法正确吗?我错过了一些基本的东西吗?我能够呈现模板,但我想重定向到 url /found ,而不仅仅是返回 find.html 的模板

@app.route('/found') 
def found(email,listOfObjects): 
  return render_template("found.html", 
      keys=email,obj=listOfObjects) 
 
@app.route('/find', methods=['GET','POST']) 
def find(): 
    if request.method == 'POST': 
        x = 3 
        y = 4 
        return redirect(url_for('found',keys=x,obj=y)) 
 
    return render_template("find.html") 

请您参考如下方法:

重定向很好,问题出在 found路线。您可以通过多种方式将值传递给端点:作为路径的一部分、在 URL 参数中(对于 GET 请求)或请求正文(对于 POST 请求)。

换句话说,您的代码应如下所示:

@app.route('/found/<email>/<listOfObjects>') 
def found(email, listOfObjects): 
  return render_template("found.html", 
      keys=email, obj=listOfObjects) 

或者:
@app.route('/found') 
def found(): 
  return render_template("found.html", 
      keys=request.args.get('email'), obj=request.args.get('listOfObjects')) 

此外,您的重定向应提供请求参数,而不是模板参数:
return redirect(url_for('found', email=x, listOfObjects=y)) 

希望有帮助。