重定向同时传递参数

14 浏览
0 Comments

重定向同时传递参数

在Flask中,我可以这样做:

render_template("foo.html", messages={'main':'hello'})

如果foo.html中包含{{ messages['main'] }},则页面将显示hello。但如果有一个导致foo的路由:

@app.route("/foo")
def do_foo():
    # 在这里执行一些逻辑
    return render_template("foo.html")

在这种情况下,如果我仍然想要发生那个逻辑,唯一的方法是通过redirect来到达foo.html:

@app.route("/baz")
def do_baz():
    if some_condition:
        return render_template("baz.html")
    else:
        return redirect("/foo", messages={"main":"在页面baz上条件失败"}) 
        # 上面会产生TypeError: redirect() got an unexpected keyword argument 'messages'

那么,我如何将那个messages变量传递给foo路由,以便在加载之前不必重写该路由计算的相同逻辑代码呢?

0