Python Pyramid optional url segment



我添加了这些路由:

config.add_route('api.v3.crud', 'api/v3/crud/{entity_type}')
config.add_route('api.v3.crud:id', 'api/v3/crud/{entity_type}/{id}')

并定义了这些默认值和配置:

@view_defaults(route_name="api.v3.crud", permission="authenticated", renderer="json")
@view_defaults(route_name="api.v3.crud:id")
class CrudView(object):
def __init__(self, request):
self.request = request
log.debug(request.method)
@view_config(request_method='GET')
def get(self):
# etc...

我认为可以定义";可选的";url以这种方式分段,这样我就可以在同一个类中实现RESTful API端点。";列表";调用work(api/v3/crud/users(,但是对api/v3/crud/users/id的调用,例如,抛出NotFound。我做错了什么?

view_defaults不会像你想象的那样堆叠。你应该只为一个类定义一次view_defaults,然后它会向类内定义的每个view_config添加参数。

最新更新