如何将 URL 的“id”部分传递给 view_callable?
题
我最近一直在研究 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”?
解决方案
您可以通过 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}
更多信息:
不隶属于 StackOverflow