Python 2.7 如何将参数传递到Flask的重定向(url_for())中?

Python 2.7 如何将参数传递到Flask的重定向(url_for())中?,python-2.7,flask,Python 2.7,Flask,我试图了解如何最好地使用Flask重定向和传递参数 下面是我的代码,我发现x和y没有进入模板 我的语法正确吗?我缺少一些基本的东西吗?我可以呈现模板,但我想重定向到url/find,而不是只返回find.html @app.route('/found') def found(email,listOfObjects): return render_template("found.html", keys=email,obj=listOfObjects) @app.route('/f

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

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

我的语法正确吗?我缺少一些基本的东西吗?我可以呈现模板,但我想重定向到url
/find
,而不是只返回
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")

重定向正常,问题在于找到的
路由。有几种方法可以将值传递给端点:作为路径的一部分,在URL参数中传递(对于GET请求),或者在请求正文中传递(对于POST请求)

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

@app.route('/found/<email>/<listOfObjects>')
def found(email, listOfObjects):
  return render_template("found.html",
      keys=email, obj=listOfObjects)
此外,重定向应提供请求参数,而不是模板参数:

return redirect(url_for('found', email=x, listOfObjects=y))

希望能有所帮助。

谢谢!我要试一试。这正是我想要的。如果这是你想要的,那么请随意投票和/或接受答案。使用重定向(url_for())可以将对象作为参数传递吗?我不明白为什么会这样。我们已经可以做
defaults={…}
为什么我们不能只插入几个参数呢?我有一个与@tw1742相同的问题。我正试图做到这一点,但与熊猫数据帧,它似乎不工作。有人知道如何传递像数据帧这样的复杂对象吗?
return redirect(url_for('found', email=x, listOfObjects=y))