在flask框架中传递flash消息

时间:2013-10-23 05:47:42

标签: python flask

我有一个用例,当page2将用户重定向到page1时,第1页应显示flash消息(例如,您的订单已成功放置)。当用户直接访问page1而未从page2重定向时,我不会显示任何Flash消息。

重定向时将flash_message从page2发送到page1的最佳方法是什么。

目前我将其作为查询参数发送。默认情况下,Page1有一个可选参数flash_message,但是当用户提供flash_message时,它会显示flash消息。

这是如何在烧瓶中的页面之间传递flash消息

2 个答案:

答案 0 :(得分:2)

  1. 使用参数重定向:您在page1上为page2链接/表单设置参数,如果page1的参数设置则显示消息。 很好的解决方案。
  2. 使用特殊路由重定向:您有page1page2重定向的特殊路由。它与参数类似。
  3. 使用referer重定向:您检查page2的http引用标头为page1良好的解决方案,但可能会遇到代理问题。
  4. 使用锚重定向:您在page2上设置了锚点并重定向而没有将锚替换为page1,在page1上您检查锚点并显示消息。当您在cookie中有活动的ajax请求和存储会话时,这是我的最佳方式。 很好的解决方案。
  5. 在前端存储中存储历史记录:您在会话存储上保存了page1的页面访问或消息,以及page1之后访问page2或设置了消息标记并访问page1然后显示消息。
  6. 在后端存储中存储历史记录:您保存访问的网页,如果在page1后访问page2,则会显示消息。

答案 1 :(得分:0)

它位于Documentation。您应调用flash()方法,并在您的视图中将消息闪烁。在模板中(对于重定向的页面),只需调用get_flashed_messages()即可获取消息列表并打印它们。如果用户直接访问,则不会flash()来电,因此get_flash_messages()不会返回任何消息。

同样,对get_flash_message()的每次通话都会为同一请求返回相同的消息,但会清空闪存队列以供后续请求使用。 API Docs

中的更多信息