0

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

    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 返回应用程序/xml

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

4

1 回答 1

0

Route 类支持其内部变量之外的正则表达式。所以试试

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

您需要做的就是从请求处理程序中接收到的值中去除前导斜杠。

变量的名称<format:是必需的,因为Bad request如果它是空白 (<:) 在/mypath/(带有结尾斜杠)请求的情况下出现错误。当 webapp 尝试创建 URL 以重定向到/mypathasstrict_slash=True 时发生错误。我想你有同样的错误。

于 2013-03-27T13:08:35.433 回答