我使用的是tornado,我声明了一个带有如下单个参数的RequestHandler:
class StuffHandler(RequestHandler):
def get(self, stuff_name):
...
app = Application([
(r'/stuff/(.*)/public', StuffHandler)
])
现在,我为'/stuff/(.*)/private'
添加了另一个处理程序,它需要对用户进行身份验证:
这当然会导致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.request.path
来获得完整路径,然后在path中获得所需的值。在最后,我问了straight to Tornado developers,一个有帮助的用户让我注意到在类中的任何地方都有{a2}和{a3}。在
因此,从
prepare()
方法(甚至是get_current_user()
方法),我可以做到:相关问题 更多 >
编程相关推荐