【发布时间】:2011-06-06 14:35:45
【问题描述】:
如何使用url_for 获取restful 路由资源的get、post、put 和delete URL?
例如,我如何获取 id=1 的资源的 PUT URL,以及在routing.py 中定义的路由,如下所示:
map.resource('user', 'users', controller='user')
我知道正确的 URL 是 /users/1,但我不想硬编码。
【问题讨论】:
如何使用url_for 获取restful 路由资源的get、post、put 和delete URL?
例如,我如何获取 id=1 的资源的 PUT URL,以及在routing.py 中定义的路由,如下所示:
map.resource('user', 'users', controller='user')
我知道正确的 URL 是 /users/1,但我不想硬编码。
【问题讨论】:
【讨论】:
在 routes.py 你的路线应该是:
map.resource('user', 'users/{id}', controller='user' action="some_action")
在您的控制器中,您可以使用url_for 获取此 URL,如下所示:
url_for(controller="user", action="some_action", id=1)
参考:Chapter 9: URLs, Routing and Dispatch,Pylons 书。
我必须警告你,这是在 Pylons 0.9.7 中使用的,但在 Pylons 1.0 中没有使用。 url_for 和 redirect_to 重新设计。如果你想在你的控制器中重定向,你必须写:
redirect(url(controller="user", action="some_action", id=1))
或者在你的情况下:
url(controller="user", action="some_action", id=1)
【讨论】: