Kann jemand die Vor- und Nachteile von TG2 gegenüber Django aufzeigen?

8

Django ist mein Lieblings-Python-Web-Framework. Ich habe andere wie Masten, web2py, nevow und andere ausprobiert.

Aber ich habe TurboGears noch nie mit viel Enthusiasmus gesehen.

Jetzt mit TG2 aus der Beta kann ich es versuchen. Ich würde gerne wissen, was die Vor- und Nachteile im Vergleich zu Django sind.

    
Vasil 12.03.2009, 23:26
quelle

8 Antworten

15

TG2 hat mehrere Vorteile, die ich für wichtig halte:

  • Unterstützung mehrerer Datenbanken
  • Unterstützung für Sharding / Datenpartitionierung
  • langjährige Unterstützung für Aggregate, mehrspaltige Primärschlüssel
  • ein Transaktionssystem, das Multi-Datenbank-Transaktionen für Sie abwickelt
  • ein Admin-System, das mit allen oben genannten Funktionen funktioniert
  • Out-of-the-Box-Unterstützung für wiederverwendbare Vorlagen-Snipits
  • eine einfache Methode zum Erstellen wiederverwendbarer Template-Tag-Bibliotheken
  • mehr Flexibilität bei der Verwendung von nicht standardmäßigen Komponenten

Es gibt mehr, aber ich denke, es ist auch wichtig zu wissen, dass Django einige Vorteile gegenüber TG2 hat:

  • Größer, Community, aktiverer IRC-Kanal
  • mehr wiederverwendbare App-Komponenten
  • ein bisschen mehr Dokumentation

All dies bedeutet, dass es in Django ein bisschen einfacher ist als TG2, aber ich persönlich denke, dass die zusätzliche Kraft und Flexibilität, die Sie bekommen, es wert ist. Aber Ihre Bedürfnisse können immer anders sein.

    
Mark Ramm 31.03.2009 22:21
quelle
14

TG2 nimmt Pylons und ändert einige Standardeinstellungen - Objekt-Dispatching anstelle von Routes und Genshi anstelle von Mako. Sie glauben, dass es nur eine Möglichkeit gibt , damit Apps sich auf die gleiche API für jede TurboGears-Website verlassen können.

>

Ähnlichkeiten

Unterschiede

  • Django verwendet seine eigenen Handler für HTTP, Routing, Templating und Persistenz. Django hat auch eine hervorragende Dokumentation und eine etablierte Community.

  • TurboGears verwendet standardmäßig die besten Bibliotheken, die anscheinend Einfügen , Objektverteilung, Genshi und SqlAlchemy . Diese Philosophie führt zu einem besseren Allround-Toolset, jedoch mit dem Risiko der Instabilität - weil es bedeutet, dass Rückwärtskompatibilität weggeworfen wird, wenn bessere Bibliotheken auftauchen.

Nikhil Chelliah 13.03.2009 00:06
quelle
5

Pros.

  • SQLAlchemy & gt; Django ORM
  • Mehrere Vorlagensprachen (genshi, mako, jinja2)
  • mehr WSGI freundlich
  • Objektversand & gt; Routen & gt; Regexp-Routing. Sie können die ersten 2 mit TG2
  • bekommen
  • Fast alle Komponenten sind optional, Sie können den Kern behalten und ORM, Vorlagen, Auth-Bibliotheken usw. verwenden.
  • Sprox & gt; Django-Formen

Nachteile  - Admin ist einfacher (noch keine Inline-Objekte!)  - Weniger Apps von Drittanbietern  - "App" -System noch in der Herstellung.  - Aufgrund seiner Modularität müssen Sie die Dokumentation aus verschiedenen Quellen lesen (SQLAlchemy, Genshi oder Mako, repoze.who, Pylons, etc.)

    
Jorge Vargas 07.09.2009 00:40
quelle
2

Ich hatte vor Monaten mit der gleichen Frage zu kämpfen und entschied mich für Turbogears 2 , und meine Argumentation war einfach. "Ich bin neu bei Python, ich möchte es nicht nur für Web-Projekte lernen, sondern als Ersatz für PHP für die Skripterstellung von kleinen Helfern "

Was mir an Django nicht gefiel, sieht für mich wie eine "nahe Plattform" aus. ORM, Templatesystem, Sitzungen, usw. Sie alle sind Djangos

Auf der anderen Seite verwendet Turbogears 2 bereits bekannte offene Plattformen und klebte sie einfach, genau wie Appfuse dies für Java macht

Mit TurboGears 2 lerne ich SQLAlchemy, das ich später für kleine Python-Skripte verwenden kann, oder von der Python-Shell, um allgemeine Aufgaben zu lösen.

Hauptnachteile sind fehlende vollständige Dokumentation und Fehlermeldungen.

Manchmal muss man sehr tief suchen, um einfache Lösungen zu finden, die Lernkurve ist steil, aber es zahlt sich langfristig aus. Die Fehlermeldungen waren für mich sehr verwirrend (kommen aus mehr als 10 Jahren Java-Entwicklung). Ich hatte viele Stunden verloren, als ich versuchte, einen "ascii encode error" zu finden, als das eigentliche Problem darin bestand, dass ein Modul nicht importiert wurde.

Das ist meine Meinung, denkt daran, ich bin neu bei Python und ich könnte mich in vielen Dingen irren, die hier erwähnt werden.

    
Juparave 05.10.2009 03:10
quelle
1

Abgesehen davon, was Nikhil in seiner Antwort gesagt hat, denke ich, ist ein weiterer kleiner Unterschied, dass Turbogears eine gewisse Unterstützung für JavaScript-Widgets und die Integration mit Mochikit .

Während Django unerschütterlich javascript-neutral bleibt.

(Das galt zumindest für ältere Versionen von TurboGears ... das könnte sich mit TG2 geändert haben)

Bearbeiten: Ich bin gerade über die TG2-Dokumentation gegangen und habe gesehen, dass sich das tatsächlich geändert hat. Turbogears verwendet jetzt ToscaWidgets, die darunter jQuery, ExtJS, Dojo usw. verwenden können. Dies macht es schön Framework-neutral, während immer noch nette Javascript Widgets zur Verfügung stellen.

Das erscheint mir als pro für TurboGear, wenn Sie keine JavaScript-Erfahrung haben und pro für Django, wenn Sie viel spezialisiertes JavaScript schreiben.

    
Van Gale 13.03.2009 00:33
quelle
1

Eine der wichtigsten Fragen ist nicht nur, welche technischen Funktionen diese Plattform bietet oder welche Plattform sie bietet, sondern auch die treibende Philosophie des Open-Source-Projekts und die Art der Community, die es unterstützt.

Ich habe selbst keinen Hund in diesem Kampf, aber ich fand Mark Ramms Vortrag auf der DjangoCon 2008 ist in diesem Punkt sehr interessant (Google wird zweifellos kein Ende der Diskussion haben).

    
zweiterlinde 13.03.2009 02:16
quelle
0

Da Django ein eigenes ORM verwendet, beschränkt es Sie, ORM für dieses spezielle Web-Framework zu lernen. Ich denke, die Verwendung eines Web-Frameworks mit einem populäreren ORM (wie SqlAlchemy, das TG verwendet) erhöht Ihre Chancen auf Beschäftigungsfähigkeit. Nur meine 2 Cent ..

    
hyperboreean 13.03.2009 00:37
quelle
0

Zuletzt habe ich überprüft, django hat eine sehr schlechte Datenimplementierung. Und das ist eine große Schwäche in meinem Buch. Djangos Orm erlaubt mir nicht, die Macht der zugrunde liegenden Datenbank zu nutzen. Zum Beispiel kann ich keine zusammengesetzten Primärschlüssel verwenden, die für das gute db-Design wichtig sind. Es unterstützt auch nicht mehr als eine einzige Datenbank, was keine große Sache ist, bis Sie es wirklich brauchen und feststellen, dass Sie es nicht tun können, ohne es manuell durchzuführen. Wenn Sie schließlich Ihre Datenbankstruktur teamfreundlich ändern müssen, müssen Sie versuchen, zwischen einer Reihe von Migrationstools von Drittanbietern zu wählen.

Turbogears scheint architektonisch solider zu sein und tut sein Bestes, um individuelle Tools zu integrieren, die für sich selbst genial sind. Und weil TG eher ein Integrator ist, können Sie Stücke nach Ihren Wünschen austauschen. Mag SQL Alchemy nicht? Sie können SQLObject verwenden. Mag ich keine Genshi Vorlagen? Sie können Mako oder sogar Djangos benutzen, obwohl Sie auch nicht mit dem Standard auf Django festgefahren sind.

Zeit für die Nachteile von tg2:

  • TG hat eine viel kleinere Gemeinschaft und die Gemeinschaft hat normalerweise ihren Vorteil.
  • Django hat einen viel besseren Namen. Ich mag diesen Namen wirklich ;-)
  • Django scheint einfacher für den beginnenden Webentwickler zu sein, mit ziemlich coolen Admin-Tools.
  • TG hat anständige Dokumentation, aber Sie müssen auch zu Genshis Website gehen, um Genshi zu lernen, SQL Alchemy's Seite, um das zu lernen, usw. Django hat großartige Dokumente.

Meine 2 Cent.

    
user37078 13.03.2009 14:06
quelle