Tornado:Flask 闪烁消息的模式

Tornado: pattern for Flask's flashed messages

Flask 中,使用视图中的 flash 函数 + 模板中的 {% for message in get_flashed_messages() %} 完成重定向时的闪烁消息。 Tornado 似乎没有内置类似的东西(这对我来说很好,fwiw)。

到目前为止我看到的唯一替换看起来像这样(this gist 的一部分):

class AuthLoginHandler(BaseHandler):
    def get(self):
        errormessage = self.get_argument("error", default="")
        self.render("login.html", errormessage = errormessage)

    def post(self):
        ...(code)...
        if not auth:
            error_msg = u"?error=" + tornado.escape.url_escape("Login incorrect")
            self.redirect(u"/auth/login/" + error_msg)

然后在模板中:

 <span class="errormessage">{{errormessage}}</span>

有没有更简洁的模式?

(我知道如何使用这种模式发送多条消息,以及几种清理它的方法,但这不是我要问的。)

Flask 的 flash 默认使用 cookie,因此直接翻译是使用 self.set_secure_cookie("flash", message) 设置消息并使用 self.get_secure_cookie("flash"); self.clear_cookie("flash") 读取消息。