Gae webapp2路由问题。匹配uris错了

时间:2014-04-28 12:07:47

标签: google-app-engine url-routing webapp2

我在使用gae webapp2路由系统时遇到了困难。

在我的routes.py中,我有以下内容:

_route  = [
RedirectRoute('/', 'home.HomeHandler', name='home', strict_slash=True),
RedirectRoute('/users/<usercode>', 'users.UserSingleHandler', name='user-page', strict_slash=True),
RedirectRoute('/users/comments/new/', 'users.UserNewCommentHandler', name='new-comment', strict_slash=True)
]

我遇到的问题是,当对'/ users / comments / new'进行ajax调用时,接收调用的处理程序是UserSingleHandler,而不是我需要的那个(UserNewCommentHandler)。 在检查代码时,我发现UserSingleHandler中的de usercode param得到'/ comments / new /'...很奇怪!!

¿我做错了什么?

1 个答案:

答案 0 :(得分:1)

'/ users /'之类的路由将捕获'/ users / *'上的所有请求,因此您可以通过更改路由顺序来解决问题:

_route  = [
RedirectRoute('/', 'home.HomeHandler', name='home', strict_slash=True),
RedirectRoute('/users/comments/new/', 'users.UserNewCommentHandler', name='new-comment', strict_slash=True)
RedirectRoute('/users/<usercode>', 'users.UserSingleHandler', name='user-page', strict_slash=True),
]