【发布时间】:2013-11-29 16:30:34
【问题描述】:
问题
由于 Tornado 附加了一个下一个查询字符串参数,其中包含构建重定向 URL 的资源的 URL,有时我们可以在登录或注销应用行 @987654321 后将用户重定向回引用页面@
但是当我在下面的代码中使用它时,它不起作用。 不登录,访问Page /test时,会重定向到/login?next=%2Ftest,但参数next总是为空,它将被重定向到 根页面 而不是 /test。
我该如何解决这个问题?
代码
import os
import tornado.wsgi
import tornado.web
import tornado.options
import tornado.ioloop
class BaseHandler(tornado.web.RequestHandler):
def get_current_user(self):
return self.get_secure_cookie("user")
class MainHandler(BaseHandler):
@tornado.web.authenticated
def get(self):
self.render('index.html', user = self.current_user)
class LoginHandler(BaseHandler):
def get(self):
if self.get_current_user():
self.redirect('/')
return
self.render('login.html')
def post(self):
self.set_secure_cookie("user", self.get_argument("username"))
self.redirect(self.get_argument('next', '/'))
class LogoutHandler(BaseHandler):
def get(self):
if not self.get_current_user():
self.redirect('/')
return
self.clear_cookie("user")
self.redirect(self.get_argument("next", "/"))
class TestHandler(BaseHandler):
@tornado.web.authenticated
def get(self):
self.write("Testing!)
settings = {
"static_path" : os.path.join(os.path.dirname(__file__), "static"),
"template_path" : os.path.join(os.path.dirname(__file__), "templates"),
"login_url" : "/login",
"cookie_secret" : "61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",
"gzip" : True,
"debug" : True,
}
application = tornado.web.Application([
(r"/", MainHandler),
(r"/login", LoginHandler),
(r"/logout", LogoutHandler),
(r"/test", TestHandler),
], **settings)
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
【问题讨论】:
标签: python url parameters tornado next