2013-03-27 74 views
0

我想利用在我的一些航線以下​​的正則表達式的啓用響應內容的格式: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返回應用/ JSON
  • POST/mypath中/ XML返回應用/ XML

任何想法如何做到這一點?

+0

'r'/ mypath/<:(json|xml)>''? – 2013-03-27 05:29:27

+0

該配置不支持第一種情況'POST/mypath返回html'。 – 2013-03-27 08:14:23

+0

哦。對。 'R '/ mypath中(/ JSON |/XML)*''? – 2013-03-27 08:20:01

回答

0

路由類別doesn't支持在其內部變量之外的正則表達式。因此,請嘗試

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

您所需要的只是從請求處理程序中收到的值中刪除前導斜槓。需要

變量名<format:,因爲我有一個Bad request錯誤,如果它是空白(< :)在/mypath/情況下(與結尾的斜線)請求。當webapp嘗試創建URL作爲strict_slash = True重定向到/mypath時發生錯誤。我想你有同樣的錯誤。