2011-01-06 44 views
4

最近我一直在玩金字塔,來自背景牆,我一直專注於URL路由而不是遍歷。如何將URL的'id'部分傳遞給view_callable?

我也一直在尋找使用處理程序將「控制器」特定功能組合到一個類中。而不是讓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'?

回答

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 2011-01-06 14:07:18