私は竜巻を使用していると私は、このような単一のパラメータでのRequestHandlerを宣言:今、私はのために別のハンドラを追加URLパラメータ内の準備()関数を取得し、代わりにGETの()/ポスト()
class StuffHandler(RequestHandler):
def get(self, stuff_name):
...
app = Application([
(r'/stuff/(.*)/public', StuffHandler)
])
class PrivateStuffHandler(RequestHandler):
@tornado.web.authenticated
def get(self, stuff_name):
...
これはもちろんget_current_user()
がget()
前に呼び出されます:認証されるユーザーが必要です'/stuff/(.*)/private'
、。問題は、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