Кто-нибудь может указать на плюсы и минусы TG2 над Джанго? - PullRequest
7 голосов
/ 13 марта 2009

Django - мой любимый веб-фреймворк на Python. Я опробовал другие, такие как пилоны, web2py, nevow и другие.

Но я никогда не заглядывал в TurboGears с большим энтузиазмом.

Теперь с бета-версией TG2 я могу попробовать. Я хотел бы знать, каковы некоторые плюсы и минусы по сравнению с Джанго.

Ответы [ 8 ]

15 голосов
/ 01 апреля 2009

TG2 имеет несколько преимуществ, которые я считаю важными:

  • Поддержка нескольких баз данных
  • поддержка шардинга / разделения данных
  • многолетняя поддержка агрегатов, первичных ключей из нескольких столбцов
  • система транзакций, которая обрабатывает транзакции с несколькими базами данных для вас
  • система администратора, которая работает со всеми перечисленными выше
  • из коробки поддержка многоразовых шаблонных фрагментов
  • простой способ создания многократно используемых библиотек тегов шаблонов
  • больше гибкости при использовании нестандартных компонентов

Есть и другие, но я думаю, что также важно знать, что у Django есть некоторые преимущества перед TG2:

  • Больше сообщества, более активный канал IRC
  • больше повторно используемых компонентов приложения
  • немного больше разработанной документации

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

14 голосов
/ 13 марта 2009

TG2 принимает Pylons и меняет некоторые значения по умолчанию - диспетчеризация объектов вместо маршрутов и Genshi вместо Mako. Они считают, что есть только один способ сделать это , поэтому приложения могут использовать один и тот же API для любого веб-сайта TurboGears.

Сходство

Различия

  • Django использует свои собственные обработчики для HTTP, маршрутизации, шаблонов и персистентности. Джанго также имеет звездную документацию и авторитетное сообщество.

  • По умолчанию TurboGears использует лучшие в своем роде библиотеки: Вставка , диспетчеризация объектов, Генши и SqlAlchemy . Эта философия дает лучший универсальный набор инструментов, но с риском нестабильности - потому что это означает отказ от обратной совместимости, если и когда появятся лучшие библиотеки.

5 голосов
/ 07 сентября 2009

Pros.

  • SQLAlchemy> django ORM
  • Несколько шаблонных языков из коробки (genshi, mako, jinja2)
  • больше дружественных WSGI
  • Отправка объекта> маршруты> маршрутизация регулярного выражения. Вы можете получить первые 2 с TG2
  • Почти все компоненты являются необязательными, вы можете сохранить ядро ​​и использовать любой ORM, шаблон, библиотеку аутентификации и т. Д.
  • Sprox> Джанго формы

Cons. - Admin более простой (никаких встроенных объектов пока нет!) - меньше сторонних приложений - Система "приложение" все еще находится в разработке. - учитывая модульность, вам нужно читать документацию из разных источников (SQLAlchemy, Genshi или Mako, repoze.who, Pylons и т. д.)

2 голосов
/ 05 октября 2009

Я боролся с тем же вопросом несколько месяцев назад и выбрал Turbogears 2 , и мои рассуждения были просты. " Я новичок в Python, я хочу изучить его не только для веб-проектов, но и как замену php для написания небольших помощников "

То, что мне не понравилось в Django, для меня выглядит как «близкая платформа». ORM, система шаблонов, сеансы и т. Д. Все они являются

Джанго

С другой стороны, Turbogears 2 использует уже известные открытые платформы и просто склеивает их, как Appfuse делает это для Java

С помощью TurboGears 2 я изучаю SQLAlchemy, который позже могу использовать для небольших сценариев Python или из оболочки Python для решения общих задач.

Основными недостатками являются отсутствие полной документации и сообщений об ошибках.

Иногда вам приходится искать очень глубоко, чтобы найти простые решения, кривая обучения крутая, но окупается долго. Сообщения об ошибках, где меня очень сбивают с толку (более чем 10-летний опыт разработки Java). Я потерял много часов, пытаясь найти «ошибку кодирования ascii», когда настоящей проблемой был не импортируемый модуль.

Это мое мнение, просто помните, что я новичок в python, и я могу ошибаться во многих вещах, изложенных здесь.

1 голос
/ 13 марта 2009

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

У меня нет собаки в этом бою, но я нашел выступление Марка Рамма на DjangoCon 2008 очень интересным по этому вопросу (Google, без сомнения, не даст конца последующему обсуждению).

1 голос
/ 13 марта 2009

Помимо того, что Никхил дал в своем ответе, я думаю, что еще одно небольшое отличие состоит в том, что Turbogears обеспечивает некоторую поддержку виджетов JavaScript и интеграцию с Mochikit .

Принимая во внимание, что Django неизменно остается нейтральным в рамках javascript.

(По крайней мере, это было верно для более старых версий Turbogears ... это могло измениться с TG2)

Редактировать: Я просто просмотрел документацию по TG2 и увидел, что она действительно изменилась. Turbogears теперь использует ToscaWidgets, которые могут использовать jQuery, ExtJS, Dojo и т. Д. Это делает его более независимым от фреймворка, в то же время предоставляя красивые виджеты JavaScript.

Это выглядит как pro для Turbogears, если у вас нет опыта работы с javascript, и pro для Django, если вы пишете много специализированных javascript.

0 голосов
/ 13 марта 2009

В последний раз я проверял, у django очень плохая реализация данных. И это огромная слабость в моей книге. Орма Джанго не позволяет мне использовать всю мощь базы данных. Например, я не могу использовать составные первичные ключи, которые важны для хорошего дизайна БД. Он также не поддерживает более одной базы данных, что не имеет большого значения, пока вы действительно не нуждаетесь в этом и не обнаружите, что вы не можете сделать это без обращения к нему вручную. Наконец, если вам нужно вносить изменения в структуру вашей базы данных в удобной для команды форме, вы должны попытаться выбрать один из множества сторонних инструментов миграции.

Турбогенераторы кажутся более архитектурными, и делают все возможное, чтобы интегрировать отдельные инструменты, которые сами по себе потрясающие. А поскольку TG больше похож на интегратора, вы можете переключать части в соответствии со своими предпочтениями. Не нравится SQL Алхимия? Вы можете использовать SQLObject. Не любите шаблоны Genshi? Вы можете использовать Mako или даже Django, хотя вы точно не застряли с Django по умолчанию.

Время для минусов tg2:

  • TG имеет гораздо меньшее сообщество, и сообщество обычно имеет свою выгоду.
  • У Джанго гораздо лучшее имя. Мне очень нравится это имя; -)
  • Django кажется более простым для начинающего веб-разработчика с довольно крутыми инструментами администратора.
  • TG имеет приличную документацию, но вам также нужно посетить сайт Genshi, чтобы изучить Genshi, сайт SQL Alchemy, чтобы узнать это, и т. Д. У Django есть отличные документы.

Мои 2 цента.

0 голосов
/ 13 марта 2009

Поскольку Django использует свой собственный ORM, он ограничивает вас в изучении этого ORM для этой конкретной веб-платформы. Я думаю, что использование веб-фреймворка с более популярным ORM (например, SqlAlchemy, который использует TG) увеличивает ваши возможности трудоустройства. Просто мои 2 цента ..

...