Turbogears 2 vs Django - есть ли советы по выбору замены для Turbogears 1? - PullRequest
11 голосов
/ 13 июля 2009

Последние пару лет я использую Turbogears 1 для создания прототипов небольших участков, и зуб становится немного длиннее. Есть какие-нибудь предложения по переходу на TurboGears 2 или переходу на что-то вроде Django? Я разрываюсь между знакомством сообщества TG, которое довольно отзывчиво и делает довольно хорошую документацию против гораздо большего сообщества, использующего Django. Я весьма соблазнен встроенными функциями CMS и поддержкой Google AppEngine.

Любой совет?

Спасибо

.М.

Ответы [ 7 ]

13 голосов
/ 13 июля 2009

TG2 построен на вершине Pylons, который также имеет довольно большое сообщество. TG стал быстрее по сравнению с TG1 и включает механизм кэширования для каждого метода (не только веб-страниц). Я думаю, что он более дружественен к AJAX, чем Django, так как страницы могут быть легко опубликованы в HTML или JSON.

2011 обновление: после 3 лет раздутых фреймворков я счастливый пользователь http://bottlepy.org/

10 голосов
/ 13 июля 2009

У меня есть опыт работы с Django и TG1.1.

IMO, сильная сторона TurboGears в том, что это ORM: SQLAlchemy. Я предпочитаю TurboGears, когда дела с базой данных нетривиальны.

ORM в Django просто не такой гибкий и мощный.

При этом я предпочитаю Джанго. Если схема базы данных хорошо подходит для ORM в Django, я бы выбрал Django.

По моему опыту, использовать Django проще, чем TurboGears.

5 голосов
/ 13 июля 2009

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

Я создал ряд приложений для Google App Engine для любителей, используя Django, последняя из которых - CMS для моего сайта. Использование Django означало, что я смог кодировать намного быстрее и с гораздо меньшим количеством ошибок.

1 голос
/ 13 июля 2009

Я уверен, что вы прочитали множество сравнений между TurboGears и DJango в Интернете.

Но что касается вашего искушения в CMS и GAE, я действительно могу думать, что вы должны пойти по пути DJango. Проверьте это и решите сами.

Джанго с GAE

Django для CMS

0 голосов
/ 03 июля 2018

Django ORM использует реализацию активных записей - вы увидите эту реализацию в большинстве ORM. В основном это означает, что каждая строка в базе данных напрямую отображается на объект в коде и наоборот. Платформы ORM, такие как Django, не требуют предварительной настройки схемы для использования свойств в коде. Вы просто используете их, так как фреймворк может «понять» структуру, взглянув на схему базы данных. Кроме того, вы можете просто сохранить запись в базе данных, так как она сопоставлена ​​с определенной строкой в ​​таблице.

SQLAlchemy использует реализацию Data Mapper. При использовании такого рода реализации существует разделение между структурой базы данных и структурой объектов (они не равны 1: 1, как в реализации Active Record). В большинстве случаев вам придется использовать другой уровень персистентности, чтобы поддерживать взаимодействие с базой данных (например, чтобы сохранить объект). Таким образом, вы не можете просто вызвать метод save (), как при использовании реализации Active Record (которая является мошенничеством), но, с другой стороны, вы не должны знать всю реляционную структуру в базе данных, чтобы работать , поскольку нет прямой связи между кодом и базой данных.

Так кто из них выиграет эту битву? Никто. Это зависит от того, чего вы пытаетесь достичь. Я считаю, что если ваше приложение в основном представляет собой приложение CRUD (создание, чтение, обновление, удаление), в котором нет жестких и сложных правил, применимых к отношениям между различными объектами данных, вам следует использовать реализацию Active Record (Django). Это позволит вам легко и быстро настроить MVP для вашего продукта без каких-либо хлопот. Если у вас есть много «бизнес-правил» и ограничений в ваших приложениях, вам может быть лучше с моделью Data Mapper, поскольку она не связывает вас и не заставляет вас мыслить строго, как Active Record.

0 голосов
/ 07 февраля 2011

TG2 кажется очень сложным и запутанным, даже если сделать что-то простое, например, страницу входа с несколькими сообщениями об ошибках Как расширить функциональность входа в Turbogears 2.1 Я думаю, это из-за несдержанности в модульности ...

0 голосов
/ 18 октября 2009

У меня только один вопрос ... Разрабатываемое вами приложение ориентировано на социальные сети или индивидуальная бизнес логика?

Лично я считаю, что Django хорош для социальных сетей и пилонов / турбонагнетателей, если вы хочу гибкости и без границ ...

только мой 2с

...