【发布时间】:2021-10-10 14:06:23
【问题描述】:
我正在尝试创建一个带有可选 url 子路径的网站:
- /user - 返回用户的一般信息
- /user/edit - 编辑用户
我试过设置:
config.add_route('user', '/user/{action}')
@view_defaults(route_name="user")
class UserViews():
# not sure what (if anything) to put in @view_config here...
def user_general(self):
return Response("General User Info"
@view_config(match_param="action=edit")
def edit(self):
return Response("Editing user")
虽然这适用于 /user/edit,但它会为 /user 返回 404
如果我使用共享路径设置 2 个显式路由,它也会以同样的方式失败 - 例如:
config.add_route('login', '/user')
config.add_route('edit_user', '/user/edit')
我尝试过设置match_params="action=",但无法正常工作。
关于如何实现这一点的任何想法?
【问题讨论】:
-
我有一种模糊的感觉,你正在尝试重新发明 Pyramid 的“遍历”机制 (docs.pylonsproject.org/projects/pyramid/en/latest/narr/…) 如果“用户”是某种“用户资源”,它会提供所有常见的逻辑你的观点怎么办?类现在提供,并且两个视图都注册在 UserResource 的“上下文”中?
-
查看您的代码后,我想知道您是否尝试访问
/user/- 我认为您的“user_general”视图应该在那里