我使用的龍捲風,我聲明瞭這樣一個參數一個RequestHandler:獲取URL參數中準備()函數,而不是GET()/後()
class StuffHandler(RequestHandler):
def get(self, stuff_name):
...
app = Application([
(r'/stuff/(.*)/public', StuffHandler)
])
現在我又增加了處理程序'/stuff/(.*)/private'
,這就要求用戶進行身份驗證:
class PrivateStuffHandler(RequestHandler):
@tornado.web.authenticated
def get(self, stuff_name):
...
當然,這將導致get_current_user()
到get()
之前被調用。問題是,爲了運行get_current_user()
,我需要知道stuff_name
參數。
所以我認爲我可以使用prepare()
或initialize()
方法,它在get_current_user()
之前調用。但是,我似乎無法從這些方法訪問stuff_name
。我嘗試將stuff_name
作爲參數,但它不起作用,然後我嘗試呼叫self.get_argument("stuff_name")
,但它也沒有工作。
如何從prepare()
方法訪問URL參數?
你可以將其存儲在類變量和找回?像self.stuff_name = stuff_name? – lamirap
@lamirap但是如何檢測一個人何時訪問'/ stuff/a/private'或'/ stuff/b/private'? self.stuff_name始終是相同的...(或者:當它更改時,我在哪裏更新它?) – wil93