2009-06-13 6 views
8

Ich habe eine komplexe Modellstruktur in Django gemacht. Ich hatte geplant, diese Struktur mit GWT zu rendern, aber mit Python die Möglichkeit zu kommunizieren mit: - mit JSON und in diesem Fall muss ich die Modelle Struktur in Javascript-Objekten (siehe Tutorial gwt) duplizieren. - python-gwt-rpc ist eine mit gwt kompatible Remote-Prozedur-Aufrufbibliothek, aber es scheint mir, dass es nicht einfach ist, sie in django-Modelle zu integrieren, und die veraltete Dokumentation hilft mir nicht. Die Alternative, die ich in Betracht ziehe, ist die Verwendung des Django-Vorlagensystems, um meine Seiten mit einigen Jquery UI-Plugins und der in diesem post vorgeschlagenen Methode zum Retraving von HTML-Daten zu rendern, ohne mit JSON-Objekten umzugehen, weil ich denke, dass der Umgang damit ein Alptraum ist in meiner Struktur, wenn sich die Daten ändern, könnte sich auch die Schnittstelle dramatisch ändern.Django + GWT oder Jquery

Also ich denke, dass mit GWT ich die Django-Modelle in Javascript-Objekten duplizieren muss, aber ich habe von der Java-Subklassen-System unterstützt. In der zweiten Lösung benutze ich die Django-Modelle und benutze das Django-Template-System, dann kann ich Server-Side-Check machen, aber weder eine coole GWT-Schnittstelle noch den leichten JSON-Aufruf, um Seiten zu aktualisieren.

Was ist Ihr Ansatz zu diesem Thema?

Antwort

4

Ich denke, dass Sie Ihre Entscheidung basierend auf den üblichen Faktoren treffen müssen: Wie viel Zeit haben Sie, um Ihre App zu entwickeln, und was sind die besten Werkzeuge, um die Entwicklung in dieser Zeit zu machen.

Wenn Sie die Entscheidung getroffen haben, dass Django Ihr serverseitiges Framework ist (was meine bevorzugte Wahl ist), dann scheint es ziemlich klar zu sein, dass jQuery, Dojo, etc. wahrscheinlich einfacher in Ihren Django integriert werden.

Auf der anderen Seite, wenn Sie mehr Zeit haben und vor allem, wenn Sie die Django-Interface-Teile öffnen könnten, dann wäre es sehr cool, etwas Code zu schreiben, der in Django Interna Haken und nahtlos das notwendige Javascript erzeugen könnte Schnittstelle mit GWT und nicht gegen DRY.

Kurz gesagt, wenn Sie die App fertig machen müssen gehen Sie mit jQuery. Wenn Sie mehr Zeit haben und etwas Lob wollen, dann entwickeln Sie eine nette nahtlose Bibliothek für Django, die das richtige HTML + Javascript aus Django-Modellen und -Formularen macht, die in GWT integriert werden.

Nur meine Meinung :)

1

Ich habe tatsächlich genau dieses Brücke überquert, und leider fand ich es am besten ist es, die Client-Seite Objekte in GWT zu machen. Zum Glück ist dies jedoch einfach mit JavaScript Overlays und einem kleinen Code-Generator.

Mein Code-Generator schaut sich die Datei models.py an und löscht alle relevanten Felder, bevor er sie in die .java-Dateien für GWT plumpst. Sobald Sie dies haben, ist die Implementierung Ihrer neuen Objekte ziemlich einfach.

+0

Great Jack! Können Sie Ihren Generator teilen, der nach models.py sucht? Behandelt es auch die erweiterten Klassen? Jetzt habe ich festgestellt, dass ein Site-Katalog, Jquery und Jquery UI für meine speziellen Bedürfnisse gut funktioniert, aber wenn ich später eine komplexe GUI hinzufügen muss, brauche ich GWT. – capolise

+0

Ich würde den Code für Sie veröffentlichen, aber ich würde sehr empfehlen, einen besseren Weg zu suchen. Zur Zeit benutze ich Perl, um die .py-Dateien zu parsen. Ich habe es geschrieben, bevor ich die Django-Modell-Dateien richtig verstanden hatte. Ich würde vorschlagen, das zu untersuchen und selbst zu rollen. –

9

Haben Sie Pyjamas in Betracht gezogen?

Für mich ist es das Beste aus beiden Welten. Sie verwenden wie gewohnt das Django-Back-End, können aber JSON-RPC-Services problemlos aus Ihrem Pyjama-Code verwenden.

Sie kodieren das Front-End so ziemlich wie in GWT, aber in Python anstelle von Java.

Hier ist eine kurze Anleitung: http://gdwarner.blogspot.com/2008/10/brief-pyjamas-django-tutorial.html