Pylons 路由 url_for 用于 map.resource
我想知道怎么用 url_for
来获取 restful 路由资源的 get、post、put 和 delete 的网址。
比如说,我想知道 id=1 的资源的 PUT 地址,而这个路由在 routing.py
里是这样定义的:
map.resource('user', 'users', controller='user')
我知道正确的网址是 /users/1
,但是我不想把它写死在代码里。
2 个回答
0
在routes.py文件中,你的路由应该是:
map.resource('user', 'users/{id}', controller='user' action="some_action")
然后在你的控制器里,你可以用 url_for
这样获取这个网址:
url_for(controller="user", action="some_action", id=1)
参考资料:第9章:网址、路由和调度,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)
参考资料:Pylons 1.0 发布
1