Найти - Пользователи
Полная версия: Подключаемая архитектура приложений
Начало » Pyramid / Pylons / TurboGears » Подключаемая архитектура приложений
1
Naota
В терминах Pylons, Django разработан так, что связка модель-шаблон-контроллер создается в отдельной папке. Такой подход дает возможность отдельно разрабатывать приложения(блог, форум, объявления, хранилище и прочие) и в своих проектах комбинировать их, легко расширяя функциональность сайта. Меня интересует такая же возможность в Pylons. Я давно поднимал этот вопрос но отывета не нашел.
Андрей Светлов
Так сделай отдельно, а потом в route map подключи. В чем проблема?
Naota
Проблема в том, что я не представляю как это подключить. Можно пример?
Андрей Светлов
Ну как же. Есть config/routing.py
"""Routes configuration

The more specific and detailed routes should be defined first so they
may take precedent over the more generic routes. For more information
refer to the routes manual at http://routes.groovie.org/docs/
"""
from pylons import config
from routes import Mapper

def make_map():
"""Create, configure and return the routes Mapper"""
map = Mapper(directory=config['pylons.paths']['controllers'],
always_scan=config['debug'])
map.minimization = False

# The ErrorController route (handles 404/500 error pages); it should
# likely stay at the top, ensuring it can always be resolved
map.connect('/error/{action}', controller='error')
map.connect('/error/{action}/{id}', controller='error')

# CUSTOM ROUTES HERE

map.connect('/{controller}/{action}')
map.connect('/{controller}/{action}/{id}')

return map
А что мешает перед последней строкой насовать еще third-party контроллеров?
Да, общего ORM с админкой нет. А еще пилон смотрит в lib(app_globals, base, helpers). Так что прийдется подумать, как куски соединять. Но - ничего сложного быть не должно.

Есть еще вариант делать свои middleware, но я столько читал о том, что как раз для подобной задачи middleware не предназначен, хотя технически и возможно.
Naota
Что такое third-party контроллер? Я совсем не понимаю как это работает. У меня есть два проекта, в первом я настраиваю роутинг, но куда? В каком месте склеиваются проекты? Где расположится второй проект по отношению к первому? На словах я не раз слышал, что все это возможно и легко делается, но наглядных примеров до сих пор не увидел :-(. Я думаю многим это было бы полезно. Странно что в документации этого нет, а очень нужная вещь.
ziro
А композитные приложения не помогут случайно http://pylonsbook.com/en/1.0/pylons-internal-architecture.html#composite-applications ?
Naota
ziro спасибо) сам только, что наткнулся на это чудо :) зашел поделится а уже поздно :)
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