簡體   English   中英

Tornado與Web.py的ctx模塊相對應的是什么?

[英]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_userget_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM