73

フラスコでは、これを行うことができます:

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

foo.html に が含まれている{{ messages['main'] }}場合、ページは表示されhelloます。しかし、foo につながるルートがある場合はどうなるでしょうか。

@app.route("/foo")
def do_foo():
    # do some logic here
    return render_template("foo.html")

この場合、とにかくそのロジックを実行したい場合、foo.html にアクセスする唯一の方法は、次の方法を使用することですredirect

@app.route("/baz")
def do_baz():
    if some_condition:
        return render_template("baz.html")
    else:
        return redirect("/foo", messages={"main":"Condition failed on page baz"}) 
        # above produces TypeError: redirect() got an unexpected keyword argument 'messages'

では、ロードする前にルートが計算するのと同じロジック コードを書き直す必要がないように、そのmessages変数をルートに渡すにはどうすればよいでしょうか?foo

4

4 に答える 4