Web tornado-我应该如何执行RequestHandler.write,然后在写入的内容保持可见时休眠一秒钟?

Web tornado-我应该如何执行RequestHandler.write,然后在写入的内容保持可见时休眠一秒钟?,web,tornado,Web,Tornado,我希望Username empty在一秒钟内可见,然后重定向。但在重定向之前,页面上似乎没有显示任何内容。我知道这是因为在连接关闭之前不会向客户端显示任何内容。因此,是否仍要显示写入的内容一秒钟?当您使用self.redirect时,它会发送一个标题,使浏览器立即重定向到/auth/login。这就是HTTP重定向的工作方式,与Tornado无关 如果希望页面保持可见,可以使用延迟来代替self.write('Username empty'): 然后在登录页面上显示错误参数(如果已设置)。因此,

我希望
Username empty
在一秒钟内可见,然后重定向。但在重定向之前,页面上似乎没有显示任何内容。我知道这是因为在连接关闭之前不会向客户端显示任何内容。因此,是否仍要显示写入的内容一秒钟?

当您使用
self.redirect
时,它会发送一个标题,使浏览器立即重定向到/auth/login。这就是HTTP重定向的工作方式,与Tornado无关

如果希望页面保持可见,可以使用延迟来代替
self.write('Username empty')

然后在登录页面上显示错误参数(如果已设置)。因此,在处理程序中:

self.redirect('/auth/login?error=%s' % tornado.escape.url_escape('Username empty'))
在模板中:

...
error = self.get_argument('error', None)
if error is not None:
    error = tornado.escape.url_unescape(error)
....
self.render('foo.html', error=error)

和你的问题不太相关,但你不应该在龙卷风中使用time.sleep()。调用它将在睡眠时间锁定服务器。而是产生龙卷风
self.redirect('/auth/login?error=%s' % tornado.escape.url_escape('Username empty'))
...
error = self.get_argument('error', None)
if error is not None:
    error = tornado.escape.url_unescape(error)
....
self.render('foo.html', error=error)
{% if error %}
{{ error }}
{% end %}