Джанго против Грока / Зопе3 против Пилона - PullRequest
12 голосов
/ 01 мая 2011

Я по образованию программист, но некоторое время не занимался веб-разработкой.Я занимаюсь небольшим фоновым исследованием различных фреймворков Python для веб-разработки.Я понимаю, что Django, Grok / Zope 3 и Pylons - все это хорошие твердые фреймворки, но они мало работают с ними.Может кто-нибудь объяснить мне разницу в подходах каждой из фреймворков, и где одна из них лучше по сравнению с другими?

Мой конкретный пример использования заключается в создании веб-приложения, которое будет рекомендовать продукты пользователям на основеразнообразная информация, предоставленная пользователем.Таким образом, потребуется немало пользовательского ввода в виде базового профиля, предпочтений продукта, попытка установить социальные отношения между пользователями.Также потребуется поддержка сотрудников, загружающих в систему продукты с помеченными функциями, которые затем могут быть сопоставлены с пользователями.

Что касается последнего пункта, помогут ли части Plone предоставить интерфейс для людей, не являющихся техническими специалистами, для загрузки продуктов и описания продуктов?Легко ли одолжить кусок Plone?Похоже, мне не нужно было изобретать велосипед, чтобы люди могли загружать предметы для продажи / рекомендации вместе с некоторыми метаданными для описания предметов.Спасибо за помощь.

Ответы [ 3 ]

14 голосов
/ 01 мая 2011

Исходя из вашего опыта и требований, я бы посоветовал вам использовать что-то вроде http://pinaxproject.com/, основанное на Django.

Пирамида (преемник Пилонов) - очень низкаяуровень структуры, и вам нужно либо выбрать библиотеки или написать весь код приложения самостоятельно.Для кого-то опытного это имеет смысл и дает вам полный контроль над вашим кодом.Но это немного препятствие, если вы начинаете с нуля и не знакомы с доступными библиотеками.

Django и Grok - это высокоуровневые фреймворки, причем Django является более популярным выбором.Если вы еще не знакомы с использованием объектных баз данных или обходом URL-адресов, Grok требует больше времени для изучения.

Plone не подходит для вашего варианта использования.Это система управления контентом, а не общая веб-платформа.Очень мало библиотек, которые он использует, может быть повторно использовано в другом контексте, и, конечно, ни один из его UI.Если вы хотите обеспечить привлекательный пользовательский опыт с персонализированным контентом, Plone не для вас - это не то, для чего он предназначен.

Отказ от ответственности: я являюсь менеджером по выпуску для Plone и Zope 2 / ZopeИнструментарий и использовал пирамиду, но не Django.

4 голосов
/ 02 мая 2011

Дольменный проект - это CMS, построенная поверх Grok. Это очень просто, но мало кто его использует. Если вы пойдете с Grok, вы сможете повторно использовать графический интерфейс.

Но, как сказал Ханно, Гроку требуется больше времени для обучения, чем Джанго. Также у Django гораздо больше пользователей, чем у Grok.

Преимущество использования Grok состоит в том, что вы можете получить прибыль от Zope Component Architecture почти без написания ZCML и использования декораторов.

С Pyramid / Pylons вы получаете очень простую структуру и больше ничего. Это независимая структура, поэтому вы можете использовать любой желаемый шаблонизатор (Mako, Genshi, Jinja, Cheetah), вы можете выбрать sqlalchemy, zodb, mongoDb и т. Д., А также можете свободно выбирать URL схема сопоставления (сопоставление в стиле Джанго или их комбинация). Вы также можете использовать ZCA здесь, если хотите. Для начала это может стать довольно запутанным или многословным.

Django - это своего рода монолитный фреймворк, который дает вам один способ делать вещи. Вот почему это легко учиться и очень хороший вариант. Но, по моему опыту, вы иногда попадаете в точку, когда вы хотите отклониться от стандартов Django, и это просто невозможно сделать, не исправив кучу вещей.

И, что касается Zope3, я бы порекомендовал вам скачать копию BlueBream и узнать, как она работает для вас.

0 голосов
/ 02 мая 2011

Как пользователь Plone, я могу сказать, что создавать объекты содержимого в Plone сложно.Существует не так много документации о том, как это сделать, и это сложно.Некоторые рекомендуют использовать UML и специализированные продукты Plone, чтобы упростить его, но это вводит еще одну зависимость.

Я упоминаю проблему с объектами контента, потому что ваши «продукты» (не такие, как продукты Plone), вероятно, будут представленыв Plone как объект контента, который вам нужно было бы написать самостоятельно.

Plone лучше всего подходит, когда пользователи и редакторы вводят и утверждают текст в виде новостных статей, пресс-релизов, фотографий и т. д. Когда это используетсяна случай, если для таких вещей есть предопределенные объекты контента, поэтому не нужно писать их самостоятельно.

- Джонатан Марк

...