2011-01-06 14 views
4

Ich habe in letzter Zeit mit Pyramid herumgespielt und, ausgehend von einem Pylonen-Hintergrund, habe ich mich auf das URL-Routing anstatt auf das Traversieren konzentriert.Wie gebe ich den ID-Teil der URL an eine view_callable weiter?

Ich habe auch mit Handlern suchen, um 'Controller' spezifische Funktionen in der einen Klasse zu gruppieren. Anstatt view.py mit einer Reihe von Funktionen verschmutzt zu sein.

Config:

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

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} 

ich die Dokumentation heute früher Lesung wurde in Bezug auf die implizite Deklaration der Aktion in der add_handler (Call), so dass falsch sein kann ... Dennoch ist mein Hauptproblem mit Zugriff auf die id innerhalb der view_callable

Wie bekomme ich "ID"?

Antwort

9

können Sie «id» durch request.matchdict Zugang:

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} 

Weitere Informationen:

+0

ich das Lesen nicht vergessen, dass früher, aber es vollständig gerutscht meine Meinung ... Prost, Kumpel. – dave