如何通过url从ZODB获取对象?

时间:2013-01-31 14:52:38

标签: zope zodb zope3

如何通过url'http://ecample.com/folder1/object1'在Zope3项目中从ZODB数据库获取对象?

obj1 = someMethod('http://ecample.com/folder1/object1')

这方法有什么工具吗?就像absoluteUrl()但相反?或者我必须解析url并从db root手动获取对象?...谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用遍历API将路径转换为对象:

from zope.traversing.api import traverse

obj = traverse(context, path)

您需要一个上下文来遍历来自的;例如,使用URL路径的站点根目录。如果你拥有的只是一个URL,你需要解析它的路径:

from urlparse import urlparse

path = urlparse(url).path