Pylons 路由 url_for 用于 map.resource

0 投票
2 回答
1129 浏览
提问于 2025-04-16 19:02

我想知道怎么用 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_forredirect_to 都进行了重新设计。如果你想在控制器中进行重定向,你必须这样写:

redirect(url(controller="user", action="some_action", id=1))

或者在你的情况下:

url(controller="user", action="some_action", id=1)

参考资料:Pylons 1.0 发布

1

你可以看看这个链接: http://routes.groovie.org/restful.html

url('user', id=1)

这应该会给你返回 '/users/1'

撰写回答