[英]What is Tornado's counterpart of Web.py's ctx module?
我想學習如何在龍卷風中使用web.py的ctx模塊之類的東西。
謝謝!
編輯:我正在嘗試在全局上下文中(如ctx模塊)保存用戶的憑據。 我知道可以隨每個請求傳遞此類信息,但是在那種情況下,我每次都需要將此信息傳遞給處理程序嗎? 我想知道實現此目標的正確方法是什么?
您可以從RequestHandler.request
對象(它是tornado.httpserver.HTTPRequest
實例)中獲取ctx
包含的大多數信息。
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
撤出,但我認為一切都已存在。
龍卷風沒有提供與ctx
提供的會話數據等效的任何東西。 龍卷風被設計為無狀態的,因此故意不執行此操作。
請注意,龍卷風確實提供了一些有用的方法來處理身份驗證。 一種是稱為tornado.web.authenticated
的裝飾器,您可以使用它來裝飾希望驗證用戶身份的任何方法。 您還應該實現get_current_user
和get_login_url
,這是經過authenticated
裝飾器用來確定用戶是否已通過身份驗證;如果沒有登錄, get_login_url
應該返回用戶應該重定向到的網址(通常這應該是您的登錄頁面) )。 用戶登錄后,可以使用set_secure_cookie
將其會話存儲在安全的cookie中,然后在get_current_user
調用get_secure_cookie
以稍后驗證會話。
有關使用Tornado處理會話的更多常規信息,請參閱此問題:在Tornado 中處理用戶會話的標准方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.