Turbogears 2 против Django – какой совет по выбору замены Turbogears 1?

StackOverflow https://stackoverflow.com/questions/1118163

Вопрос

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

Любой совет?

Спасибо

.М.

Это было полезно?

Решение

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

ИМХО, сильная сторона TurboGears — это ORM:SQLАлхимия.Я предпочитаю TurboGears, когда проблема с базой данных нетривиальна.

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

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

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

Другие советы

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

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

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

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

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

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

Джанго с GAE

Джанго для CMS

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

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

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

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

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

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

только мой 2с

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top