我已经研究了如何使用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))
谢谢大家的帮助!
答案 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()而不是?