dynamische Webseiten - ohne Framework

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Dienstag 1. April 2008, 14:02

Mir scheint hier "Frameworks" etwas zu locker genommen zu werden. Als Web-Framework in der Python-Welt verstehe ich Pylons, TurboGears und Django. Alle bestehen aus Komponenten, die entweder (wie bei den ersten beiden) eigenständig sind oder nur im Rahmen des Frameworks erhältlich oder benutzbar sind (trifft für das Meiste bei Django zu).

Für Web-Entwicklung sollte man sich unbedingt Komponenten bedienen. Eine Template-Engine ist *immer* eine gute Idee, praktisch egal, wie wenig Code man erzeugt. Kommt eine Datenbank ins Spiel, entfaltet gerade SQLAlchemy seinen wahren Wert, weil es vom verwendeten DBMS abstrahiert (und damit ein Wechseln ermöglicht) und man kein SQL mehr schreiben muss (was oft sehr ähnlich aussieht, wenn es um die einfachen, gängigen Fälle simpler Abfragen geht), sondern sowas sehr kompakt, flexibel und einheitlich programmatisch in Python formulieren kann.
An weiteren Komponenten Fallen mir da solche für URL-Handling, Sessions, Caching, Formularauswertung und mehr ein.

Ein Framework trifft letztlich meist eine Vorauswahl aus solchen Komponenten und integriert diese mehr oder weniger stark mit ein wenig Glue-Code. Dies mag für 80% der Fälle eine Lösung sein, ist dennoch aber nicht die einzige. Die Komponenten einzeln zu verwenden oder selbst zu integrieren, ist meist sehr einfach und problemlos, dabei zugleich mit mehr Unabhängigkeit und Freiheit verbunden, etwa was Auswahl, Austausch und schrittweises Ergänzen angeht.

Ergo: Ohne Frameworks kommt man auch sehr gut aus, aber man sollte sich schon *sehr* (!) genau überlegen, ob man wirklich nicht auf Komponenten zurückgreift, die die gewollten Wege vereinfachen und optimieren. In Bezug auf eigene Lösungen sollte man sich im Klaren darüber sein, dass man damit praktisch nie an die Qualität von populären und täglich eingesetzten (Open Source-)Produkten heran kommt, die täglich mit Bugreports und Patches verbessert werden.
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 1. April 2008, 14:17

Y0Gi hat geschrieben:Die Komponenten einzeln zu verwenden oder selbst zu integrieren, ist meist sehr einfach und problemlos, dabei zugleich mit mehr Unabhängigkeit und Freiheit verbunden, etwa was Auswahl, Austausch und schrittweises Ergänzen angeht.
Das hört sich schön und einfach an. Der Threadstarter hat allerdings gerade erst angefangen...
In der Praxis ist es außerdem alles andere als einfach. Ich denke das beste Beispiel ist Turbogears. Da waren sicherlich einige sehr fähige Leute am Werk. Dennoch gibt es mit der neuen Version ein Bruch, weil die alte Version anscheinend doch nicht so schön war.
Wenn also ein Einsteiger versucht sich mit einigen tollen Komponenten einzudecken und alles zusammen zu kleben, wird es wahrscheinlich in die Hose gehen, würde ich sagen. Dann besser auf unterster Ebene sich die Welt der WebApps anschauen.

Ich denke es ist gerade für Einsteiger vom Vorteil das man gewisse vorgaben an die Hand bekommt und das ist die stärke von django.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 1. April 2008, 14:37

jens hat geschrieben:In der Praxis ist es außerdem alles andere als einfach. Ich denke das beste Beispiel ist Turbogears. Da waren sicherlich einige sehr fähige Leute am Werk. Dennoch gibt es mit der neuen Version ein Bruch, weil die alte Version anscheinend doch nicht so schön war.
Ich habe mich nie richtig für TG erwärmen können, weil es immer irgendwie im Fluss war. 0.7 war nett, 0.8 war damals unfertig und hat eine riesige Menge Dependencies gehabt, so dass ich zu Django gegangen bin, wo sich alles solider anfühlt und nicht ständig wechselt.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Dienstag 1. April 2008, 15:12

TG war und ist in meinen Augen ein Prototyp (von den Anfängen mit CP, Kid und SQLObject mal abgesehen), der scheinbar nur an aktuelle Entwicklungen angepasst wird (was an sich ja positiv ist), aber so nie mittel- oder gar langfristig vernünftig einsetzbar ist. Ich betrachte es als eine Art "so würde es aussehen, wenn man es machen würde".
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dienstag 1. April 2008, 19:00

Auch wenn's ein wenig offtopic ist, aber kennt jemand etwas ähnliches wie JavaServerFaces für Python? Speziell bei komplexeren Formularen hätte ich da gerne etwas für Python - und für solche Sachen Templates komplett per Hand zu schreiben kann nicht der Weisheit letzter Schluss sein imho.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 1. April 2008, 19:59

Hyperion hat geschrieben:Speziell bei komplexeren Formularen hätte ich da gerne etwas für Python - und für solche Sachen Templates komplett per Hand zu schreiben kann nicht der Weisheit letzter Schluss sein imho.
FormBuild? Djangos newforms? ToscaWidgets? Die können zum Teil auch aus dem Datenbankschema generiert werden.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten