RedirectRoute中的正则表达式无法正常工作

时间:2013-06-19 19:36:10

标签: regex google-app-engine python-2.7 webapp2

我已经研究了如何使用webapp2在RedirectRoute中使用正则表达式。我尝试按照它在这里说的方式格式化它:http://webapp-improved.appspot.com/guide/routing.html#the-url-template我仍然无法让我的正则表达式工作。这就是我所拥有的:

RedirectRoute('/book/<bookId:([0-9]+)><title:(.*)>',handlers.book,name='book')

对此的呼吁是:

self.redirect_to('book/%s_%s' %(bookId,title))

和我期待的网址示例是:

书/ 5907332378656768_The-WIZZARD-的盎司

当我运行我的应用时,我收到以下错误:

错误:“路线名为u'book / 5907332378656768_The-Wizzard-of-Oz”未定义。

非常感谢任何帮助。

EDIT:
嘿大家好!感谢布伦特的回应,我能够解决问题。 我不得不改变self.redirect_to('book/%s_%s' %(bookId,title)) 以下内容:self.redirect('book/%s_%s' %(bookId,title))

谢谢大家的帮助!

2 个答案:

答案 0 :(得分:0)

我认为你可以将括号从模式中删除:

RedirectRoute('/book/<bookId:[0-9]+><title:.*>',handlers.book,name='book')

答案 1 :(得分:0)

Google搜索webapp2 error route "is not defined"会找到Webapp2 source code。该错误消息位于从default_builder()调用的方法redirect_to()中。该方法查找name字段(在本例中为“book”)。也许你打算打电话给redirect()而不是?