Можете да получите повечето от информацията, съдържаща се в 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>, за да съхранят сесията си в защитена бисквитка и след това да извикат get_secure_cookie
в get_current_user
, за да потвърдите сесията по-късно.
Вижте този въпрос за по-обща информация относно обработката на сесии с Tornado: стандартен начин за обработка на потребителска сесия в tornado
person
dano
schedule
03.06.2014