Python Pyramid дополнительный сегмент URL

#python #pyramid

#python #пирамида

Вопрос:

Я добавил эти маршруты:

 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 . Что я делаю не так?

Комментарии:

1. Попробуйте использовать pviews для устранения неполадок. proutes также может быть полезно.

Ответ №1:

Они view_defaults не складываются так, как вы, вероятно, думаете. Вы должны определить только view_defaults один раз для класса, а затем он добавит параметры к каждому view_config определенному внутри класса.