通过变量重定向url_for烧瓶
问题描述:
我想知道是否有可能通过redirect(url_for())
传递一个值而不成为GET。通过变量重定向url_for烧瓶
基本的例子:我有一个家功能:
@app.route("/")
def home(msg=None):
return render_template("home.html", mgs=msg)
我怎么能传递一个消息发送给家庭功能? 换句话说,我可以这样做:
@app.route("/logout")
def logout():
logout_user()
return render_template('home.html', msg="logged out")
与redirect(url_for())
?
这样:
@app.route("/logout")
def logout():
logout_user()
return redirect(url_for(('home', msg="logged out"))
只是给我的网址用GET /毫克= '退出'。
据我所知,url_for是基于传递给它的函数的名称生成一个url。你能传递一个值给那个函数吗?
答
什么闪光变量工作?
flash("logged out")
return redirect(url_for('home'))
然后在模板home
:
{% with passed = get_flash_messages() %}
{% if passed %}
<!-- passed should contain 'logged out' -->
{% endif %}
一个总值(但不是完全不切实际的)方法是使用一个会话变量,但除此之外,没有你不能。 – CodeLikeBeaker
您可以,*如果网址期望该变量。因此,如果你的路由是“/ logout /:message”,那么这将起作用,但是你的URL最终会变成“/注销/注销”,这将更加糟糕。 (虽然请注意,关于使用会话没有任何重要内容;这正是他们的目的。) –