2011-01-06 2 views
4

저는 최근에 피라미드를 가지고 놀았으며, 필론 (Pylons) 배경에서 오면서, 나는 트래버스 (traversal)보다는 URL 라우팅에 집중했습니다.URL의 'id'부분을 view_callable에 전달하려면 어떻게해야합니까?

저는 '컨트롤러'관련 기능을 하나의 클래스로 그룹화하기 위해 핸들러를 사용하는 방법에 대해서도 살펴 보았습니다. view.py를 여러 함수로 오염시키지 말고.

구성 :

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

처리기 : 나는 add_handler() 호출에서 행동의 암시 적 선언에 관한 이전의 오늘 문서를 읽고 있었다

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} 

이 잘못 될 수 있도록 ... 그럼에도 불구하고 주된 문제는 view_callable 내에서 id에 액세스하는 것입니다.

'id'를 얻으려면 어떻게해야합니까?

답변

9

당신은 request.matchdict을 통해«ID»에 액세스 할 수 있습니다

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} 

추가 정보 : 앞서 있지만 완전히 미끄러 읽고 기억

+0

내 마음 ... 환호, 친구. – dave