W kolbie, mogę to zrobić:przekierować przechodząc argumenty
render_template("foo.html", messages={'main':'hello'})
A jeśli foo.html zawiera {{ messages['main'] }}
, strona pokaże hello
. Ale co, jeśli nie jest to droga, która prowadzi do foo:
@app.route("/foo")
def do_foo():
# do some logic here
return render_template("foo.html")
W tym przypadku jedynym sposobem, aby dostać się do foo.html, jeśli chcę, że logika się zdarzyć i tak, jest przez 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'
Jak zatem uzyskać tę zmienną messages
, która ma zostać przekazana do trasy foo
, aby nie musiałem po prostu przepisywać tego samego kodu logicznego, który jest obliczana przez tę trasę przed jej załadowaniem?
+1, miganie wiadomości jest zdecydowanie droga do przebycia. –
numpy array daje typError z sesją, mówi, że nie jest serializowany JSON – erogol
Problem z sesją w tym przypadku można mieć warunek wyścigu: jeśli ktoś poprosi o tę samą stronę dwa razy w tym samym czasie, może dostać wiadomości na niewłaściwej. – bfontaine