包含正则表达式的webapp2路由不起作用

时间:2013-03-27 01:50:47

标签: python regex google-app-engine webapp2

我想在某些路由中使用以下正则表达式来启用响应内容的格式设置:

    RedirectRoute(r'/mypath/<:|json|xml>', handler=myhandler, handler_method='mymethod', name='myhandler=mymethod', methods=['POST'], strict_slash=True),

上述代码段的所需功能如下:

  • POST / mypath返回html
  • POST / mypath / json返回application / json
  • POST / mypath / xml返回application / xml

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

路由类doesn't支持其内部变量之外的正则表达式。所以试试

RedirectRoute('/mypath<format:|/xml|/json>', handler=myhandler, handler_method='mymethod', name='myhandler=mymethod', methods=['POST'], strict_slash=True)

您只需要在请求处理程序中从接收到的值中删除前导斜杠。

变量的名称<format:是必需的,因为如果Bad request(带有结束斜杠)请求为空时(&lt; :),则出现/mypath/错误。当webapp尝试创建URL以重定向到/mypath为strict_slash = True时,会发生错误。我想你有同样的错误。