Найти - Пользователи
Полная версия: Pyramid+ HMVC+widgets
Начало » Pyramid / Pylons / TurboGears » Pyramid+ HMVC+widgets
1
dorian
Многие простейшие php фреймворки это умеют (Codeigniter, Kohana, Yii и тд.), есть похожее у флакса(blueprints). Есть ли нечто подобное для Pyramid?
appetito
подобное чему? что именно нужно?
dorian
appetito
подобное чему? что именно нужно?
страница приложения состоит из основного контента и модулей. Пирамида позволяет обрабатывать единый контроллер за реквест, что приводит к различного рода костылям для рендеринга блоков. Сейчас этот вопрос решается через шаблоны, которые пестрят хардкодом. Например, в том же Codeigniter есть возможность из представлений обращаться к другим контроллерам, получая на выходе отрендеренную страницу с основным контентом и блоками.
appetito
я в таких случаях блоки генерирую с помощю функций, их можно описать в отдельном модуле и пробросить в шаблоны, а там писать что-то типа {{ widgets.my_cool_widet(request, params) }} /для jinja2/

если блоков много и они генерируются сещественное время, то лучьше использовать SSI include - так страница соберется из модулей гораздо быстрее
ziro
Уточните, пожалуйста, шаблонизатор, который Вы используете. Так как поддержка виджетов и блочное наследование имеется, например, в Mako и jinja2. Ну и с хардкодом можно обойтись разными способами.
dorian
ziro
Уточните, пожалуйста, шаблонизатор, который Вы используете. Так как поддержка виджетов и блочное наследование имеется, например, в Mako и jinja2. Ну и с хардкодом можно обойтись разными способами.
Mako, блоки используем конечно. Например вывод курсов и котировок. Пока реализовано хардкодом в блоке. Примерчик
в мейне
<%block name="rates">finrates</%block>
ну и в шаблоне
<%inherit file="mayapp:templates/layouts/home.mak"/>
<%block name="rates">
	# hardcode
</%block>
dorian
Давняя тема, но тем не менее….
Для решения использую pyramid_layout, уверен многим пригодится
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB