Как я могу получить объект из ZODB по URL?

Как я могу получить объект из базы данных ZODB в проекте Zope3 по URL ' http://ecample.com/folder1/object1'?

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

Есть ли инструменты для этого? Вроде absoluteUrl() но наоборот? Или я должен разобрать URL и вручную получить объект из корня БД?... Спасибо

1 ответ

Решение

Вы можете превратить путь в объект, используя обходной API:

from zope.traversing.api import traverse

obj = traverse(context, path)

Вам понадобится контекст для перехода; например, используйте корень сайта для URL-путей. Если все, что у вас есть, это URL-адрес, вам нужно разобрать путь по нему:

from urlparse import urlparse

path = urlparse(url).path
Другие вопросы по тегам