Вы можете получить большую часть информации, содержащейся в ctx
, из RequestHandler.request
объект, который представляет собой tornado.httpserver.HTTPRequest
экземпляр.
class MyHandler(tornado.web.RequestHandler):
def get(self):
# This is just some of the attributes available.
print("host is {0.host}, ip is {0.ip}, HTTP method"
" is {0.method}, protocol is {0.protocol}".format(self.request))
Кое-что из того, что содержится в ctx
, вам, возможно, придется вытащить из self.request.headers
, но я думаю, что все там есть.
Tornado не предоставляет ничего эквивалентного данным сеанса, которые предоставляет ctx
. Tornado предназначен для безгражданства, поэтому это намеренно не реализовано.
Обратите внимание, что Tornado предоставляет несколько полезных методов для аутентификации. Одним из них является декоратор под названием tornado.web.authenticated
, который вы можете используйте, чтобы украсить любой метод, к которому вы хотите, чтобы пользователь аутентифицировал доступ. Вы также должны реализовать get_current_user
, который декоратор authenticated
использует для определения того, аутентифицирован ли пользователь, и get_login_url
, который должен возвращать URL-адрес, на который следует перенаправить пользователя, если он не вошел в систему (обычно это должна быть ваша страница входа). Когда пользователь входит в систему, вы можете использовать set_secure_cookie
a> для сохранения своего сеанса в безопасном файле cookie, а затем вызовите get_secure_cookie
внутри get_current_user
, чтобы проверить сеанс позже.
См. этот вопрос для получения более общей информации об обработке сеансов с Tornado: стандартный способ обработки сеанса пользователя в tornado
person
dano
schedule
03.06.2014