misha111
То, что я сам начитался - что объекты живут в zodb, укладываются туда
при рестарте, на основании того, что написано в .zcml
Неверно. Все объекты, которые регистрируются в ZCML: адаптеры, утилиты и т.д. - живут в памяти. В ZODB живут только объекты, которые наследуются от
и сохранены туда.
misha111
Ну и при обработке запроса достаются с помошью утилиты cPickle.
Верно, в ZODB в виде узлов деревьев они физически представляют собою пиклы объектов.
misha111
запрос->(создание экземпляра->десериализация(когда, зачем, первый раз там ничего нет)) - правильнее наверно сказать что это делает утилита cPickle и объект уже готовый ->тут публикация и все такое не так важное->сериализация->удаление
Для пользователя это в общем случае не важно. Объекты достаются из базы по запросу, например, через getUtility. При таком запросе может быть взят объект как из базы, так и из памяти (если он из ZCML и неперсистентный). В вашей схеме мне непонятно практически ничего.
Происходит все так:
1. Делается запрос к серверу
2. BB траверсит по объектам и видам (опять же таки виды тоже могут быть traversable) и, исходя из этого находит необходимый код для построения страницы.
3. В коде вы сами выбираете объекты, которые вам нужны для шаблона.
4. Отрисовывается шаблон.
При этом всем работа с ZODB неявно происходит постоянно - поиск утилит, адаптеров (все это может быть в базе, так и не в базе ее), траверсинг, выборка объектов во view.
В общем, сомневаюсь что ответил на ваш вопрос, так как до конца его не понял, но, думаю, некие моменты осветил, и вы захотите что-нибудь уточнить =).