フラスコでは、これを行うことができます:
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