如何将URL中的'id'部分传递给view_callable?
最近我在玩Pyramid这个框架,因为之前用的是Pylons,所以我现在主要关注的是URL的路由,而不是遍历。
我还在考虑使用处理器(handlers)来把特定于“控制器”的功能放到一个类里,这样就不会让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()调用中隐式声明动作的部分,可能我理解错了……不过,我现在主要的问题是如何在view_callable中访问到id
。
我该怎么获取'id'呢?
1 个回答
10
你可以通过请求的 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}
更多信息: