Как передать часть 'id' URL-адреса в view_callable? - PullRequest
4 голосов
/ 06 января 2011

В последнее время я играл с Pyramid и, исходя из опыта работы с Pylons, я сосредоточился на маршрутизации URL, а не на обходах.

Я также рассматривал использование обработчиков для группировки вместе«Контроллер» специфические функции в одном классе.Вместо того, чтобы view.py был загрязнен кучей функций.

Конфиг:

config.add_handler('view_page', '/page/view/{id}', handler=Page, action=view_page)

Обработчик:

from pyramid.response import Response
from pyramid.view import action

class Page(object):

    def __init__(self, request):
        self.request = request

    def view_page(self):
        return {'id': id}

Сегодня я читал документы ранее по поводунеявное объявление действия в вызове add_handler (), так что это может быть неправильно ... Тем не менее, моя главная проблема заключается в доступе к id в пределах view_callable

Как мне получить 'id'?

1 Ответ

9 голосов
/ 06 января 2011

Вы можете получить доступ к «id» через request.matchdict:

from pyramid.response import Response
from pyramid.view import action

class Page(object):

    def __init__(self, request):
        self.request = request

    def view_page(self):
        matchdict = request.matchdict
        id = matchdict.get('id', None)
        return {'id': id}

Подробнее:

...