在python Tornado服务器上处理许多路径的最佳方法是什么?

时间:2013-02-09 04:17:31

标签: python tornado web-frameworks

class Application(tornado.web.Application):
    def __init__(self):
        handlers = [
        (r"/", MainHandler),
        (r"/auth/login", AuthLoginHandler),
        (r"/auth/logout", AuthLogoutHandler),
        (r"/auth/register",RegisterHandler),
        (r'/user/([a-z\d.]{5,})/?',UserHandler),
        (r'/user/([a-z\d.]{5,})/friends',UserFriendHandler),
        (r'/user/([a-z\d.]{5,})/status',StatusHandler),
        (r'/user/([a-z\d.]{5,})/wall',WallHandler),
        (r'/actions/respond_friend',FriendActionHandler),
        ]

这是我的处理程序数组。这可能会增长得更多。我的问题涉及到这一行:

    (r'/actions/respond_friend',FriendActionHandler),

我打算使用此行通过帖子回复朋友请求,将朋友用户名作为帖子参数。发送帖子时我将如何检索此参数(“存储”在哪里)?这样做是否更有意义:

(r'/user/([a-z\d.]{5,})/actions/respond_friend',FriendActionHandler),

1 个答案:

答案 0 :(得分:1)

您可以使用get_argument在帖子方法

中获取请求参数

username = self.get_argument('username', None)

我不知道通过网址传递用户名是否合理。如果你是,它会复制它以发布用户名。

如果url param与正则表达式不匹配,我认为龙卷风只会提高404.所以如果你需要对引发的错误进行更细粒度的控制,那么只需在帖子正文中发布用户名就更有意义了/ p>