Seite 1 von 2

Verfasst: Mittwoch 30. Mai 2007, 15:47
von EnTeQuAk
Dann gibt es hier im Forum noch Leute, die dir einfach nur zu WSGI raten. Aber WSGI ist nur die Technik dahinter und ist für die einfache Programmierung einer kleinen (oder auch großen) Website zu tief am Eingemachten. (ich habe es ausprobiert -- es war schrecklich)
Die, die es allerdings (richtig) machen, empfehlen hier kein einfaches WSGI sondern entsprechende WSGI-Handler oder Frameworks.

Und sich über Vor und Nachteile von WSGI(-Anwendungen) aufzuregen, was die Einsatzmöglichkeit angeht, mit Karrigell im Rücken ist auch nicht wirklich sinnvoll. Denn Karrigell unterstützt es nicht, braucht (meines Wissens nach) immer den eigenen Webserver, was für Shared-Hosting schonmal absolut gar nicht (oder nur in extremfällen) möglich ist.
Das PHP Apps generell einfach zu installieren sind, liegt aber auch daran, das die Shared-Web-Server möglich offen dafür konfiguriert sind. Sicher ist das aber ehr weniger...
Genau, das ist auch mein Gedanke. Wie wird PHP ausgeführt? Entweder über mod_php bei Apache oda einfach über CGI. CGI ist bei Python ebenso die "einfachste" Anwendungsschicht. Zumindest ohne groß mit anderen Abstraktionsschichten (hieß das so?) wie mod_python etc. rumzumachen.

Und mal ehrlich: Mal genauer drüber nachgedacht, ist Python im Web zu 99,9% nicht schwerer/komplizierter, als PHP. Vergleichen mit Ruby oder Java braucht man das glaube ich nicht. (bei ruby weiß ich nicht, ob das auch so einfach über CGI geht)
Ja, das ist der Grund, weshalb Python in der Web-Programmierung nie den Stellenwert von PHP erreichen kann. Es ist zu kompliziert, eine einfache, dynamische Seite zu erstellen.
PHP ist einfach so einfach, weils jeder Shared Hoster anbietet. Als Hoster braucht man "nur" entsprechende (Apache) Module (und die meißten verwenden Apache) zu installieren, gut abzusichern und dann sollte die Konfiguration eigentlich komplett via .htaccess möglich sein. Und via .htaccess ist einiges möglich.

Also --> .htaccess + Konfiguration + entsprechender Handler für FastCGI, mod_python & co = Voll einsatzfähige Anwendung ohne Einschränkung.

Und rein von der Programmiererseite, willst du nicht sagen, das es so viel Schwerer ist eine Dynamische Internetapplikation zu erstellen, oder?

[offtopic]
Weil Colubrid ein paar Design Fehler hat und man die nicht fixen kann ohne bestehende Anwendungen kaputt zu machen. Daher werkzeug als unabhängiger Colubrid Nachfolger.
Die währen? (interessiert mich einfach ;) )
Nichts desto trotz habe ich mir Werkzeug die letzten Tage mal näher angeschaut und habe auch schon erste lauffähige mini Anwendungen hinbekommen. Außer, das das URL-Mapping irgentwie anders ist (ungewohnt für mich), is es ganz schick geworden. Nur einige Beispielanwendungen sind kaputt, werde mir nochmal alles anschauen und dir mal bescheid sagen, wenn ich mal irgentwann wieder Zeit habe ins IRC zu kommen.
Da reicht normalerweise hoch laden und Setup durchklicken/Config anpassen
Sag das nicht...

Entweder mache ich immer etwas falsch oder ich kenne Sehr viele Punkte, wo PHP Anwendungen nicht nur einfach hochladen und klick und fertig sind.
Viele (sogar sehr viele) benötigen auch noch die Anpassung von Anwendungsrechten. Hier fängts schon an *g*


Alles in Allem ist es nur eine Anschauung. Genauer betrachtet liegt alles vom Schwierigkeitsgrad nah bei einander.


MfG EnTeQuAk

Verfasst: Mittwoch 30. Mai 2007, 15:55
von Leonidas
EnTeQuAk hat geschrieben:(bei ruby weiß ich nicht, ob das auch so einfach über CGI geht)
Ja. Seit Rails macht das aber keiner. Rails hat schon Hoster-Support in Form von FastCGI oder Mongrel.
EnTeQuAk hat geschrieben:Außer, das das URL-Mapping irgentwie anders ist (ungewohnt für mich)
Das Mapping scheint sich an das von Routes anzulehnen. Routes ist ein Bekannter aus Pylons, und es hat sich einiges von Rails abgeschaut.

Verfasst: Mittwoch 30. Mai 2007, 16:11
von mitsuhiko
Ruby hat mit Rack jetzt ein WSGI ähnliches Interface bekommen. :-)

Verfasst: Mittwoch 30. Mai 2007, 16:27
von N317V
Wenn ich nun aber kein eigenes Framework entwickeln will, wieso muss ich mich mit WSGI überhaupt beschäftigen? Und wieso ist das denn so wahnsinnig wahnsinnig wichtig, dass hier gleich der erhobene Zeigefinger mit Blitzen kommt, wenn jemand was anderes vorschlägt?

Verfasst: Mittwoch 30. Mai 2007, 16:29
von mitsuhiko
N317V hat geschrieben:Wenn ich nun aber kein eigenes Framework entwickeln will, wieso muss ich mich mit WSGI überhaupt beschäftigen? Und wieso ist das denn so wahnsinnig wahnsinnig wichtig, dass hier gleich der erhobene Zeigefinger mit Blitzen kommt, wenn jemand was anderes vorschlägt?
Schau dir den Blitz nochmal genauer an. Du sollst dich damit ja gar nicht beschäftigen. Sondern der Entwickler des Frameworks. Und der Karrigell Entwickler sträubt sich dagegen.

Verfasst: Mittwoch 30. Mai 2007, 16:42
von N317V
@blackbird: Und wieso sollte mich das interessieren?

Verfasst: Mittwoch 30. Mai 2007, 17:23
von birkenfeld
@N317V: Ich wage mal zu behaupten, dass in diesem Forum relativ viel geschrieben wird, was dich nicht interessiert.

Verwendest du ein Framework, das WSGI unterstützt, ist es für dich wirklich nichts weiter, als das Application-Objekt an das Gateway zu übergeben, und fertig.

Verfasst: Mittwoch 30. Mai 2007, 17:53
von N317V
@birkenfeld: Ja, in Threads, die ich nicht lese wird sicherlich viel uninteressantes geschrieben. Darum lese ich sie ja nicht mal, geschweige denn dort zu posten.

Nun es wurde nach einem Framework gefragt, Karigell vorgeschlagen und dann dagegen argumentiert mit "Nicht WSGI-kompatibel". Das kann natürlich ein Aspekt in der Entscheidung für oder gegen ein bestimmtes Framework sein, aber ich hab manchmal den Eindruck, als sei das das allerallerwichtigste überhaupt, während es mir, offen gesagt, völlig wurscht ist. Wie meine Applikation mit der Umwelt kommuniziert, das Problem löse ich pro Installation ein einziges mal, während ich mich mit fast allen anderen Aspekten eines Frameworks doch viel häufiger rumschlagen muss.

Verfasst: Mittwoch 30. Mai 2007, 18:50
von fme
blackbird hat geschrieben:Weil Colubrid ein paar Design Fehler hat und man die nicht fixen kann ohne bestehende Anwendungen kaputt zu machen. Daher werkzeug als unabhängiger Colubrid Nachfolger.
Wurde zwar schon mal nach gefragt, aber die Antwort fehlt noch.
Was sind das für Design Fehler ?

Ich habe gerade angefangen eine Webapplikation mit Colubrid zu erstellen.
Noch ist es ziemlich leicht auf Werkzeug oder Co zu wechseln.
Daher würde mich die Antwort doch schon interessieren.

Verfasst: Mittwoch 30. Mai 2007, 19:01
von gerold
blackbird hat geschrieben:Sondern der Entwickler des Frameworks. Und der Karrigell Entwickler sträubt sich dagegen.
Hallo blackbird!

:lol: Ich glaube eher, dass er es nicht macht, weil er weiß, dass er es kaum schaffen kann. Das ganze Framework ist so aufgebaut, dass es relative Pfade verwendet und während der Codeausführung von einem Ordner in den anderen hüpft. Dann kommt noch dazu, dass viel nicht so programmiert ist, dass es nebeneinander ausgeführt werden könnte. Threads sind fast nicht machbar. Es scheint so, als hätte sich Pierre da ein wenig fest gefahren. Man konnte bei der mod_python-Diskussion ziemlich viel zwischen den Zeilen heraus lesen. Das ist einer der Gründe, weshalb ich mich im Moment auch mit anderen Frameworks beschäftige. Ich muss demnächst ein Projekt mit hunderten von dynamischen Seiten aufstellen. Dafür brauche ich eine solide Basis.

mfg
Gerold
:-)

Verfasst: Mittwoch 30. Mai 2007, 21:32
von veers
N317V hat geschrieben:Wie meine Applikation mit der Umwelt kommuniziert, das Problem löse ich pro Installation ein einziges mal, während ich mich mit fast allen anderen Aspekten eines Frameworks doch viel häufiger rumschlagen muss.
Nun ist nur die Frage nach der Anzahl Installationen und installierenden Personen.

Des weiteren bietet WSGI noch viele weitere Vorteile. Interessant sind da zum Beispiel die verschiedenen Middlewares.

Die Idee hinter WSGI ist definitiv sehr nett. Nur frage ich mich ob es nicht ein wenig zu Tief unten liegt für den Alltagsgebrauch.

Um zum meiner eigentlichen Frage zurück zu kommen. Mir ist die tolle Idee gekommen Django etwas umzustrukturieren / mir eine eigene Vorlage zu bauen die enthält was ich brauche und nicht mehr/weniger. Müsste ja angeblich recht einfach möglich sein.

Verfasst: Mittwoch 30. Mai 2007, 23:20
von Leonidas
veers hat geschrieben:Um zum meiner eigentlichen Frage zurück zu kommen. Mir ist die tolle Idee gekommen Django etwas umzustrukturieren / mir eine eigene Vorlage zu bauen die enthält was ich brauche und nicht mehr/weniger. Müsste ja angeblich recht einfach möglich sein.
Klar, du kannst in DJango auch eigene Teile benutzen. Aber je länger ich mit Django arbeite, desto mehr merke ich, dass ich andere Komponenten gerne nutzen würde. Sei es, weil das Django-ORM an einigen Stellen buggy ist oder weil die Template-Engine vergleichsweise beschränkt ist. Aber wenn ich etwas auswechsle, dann verliere ich immer mehr von der tollen Integration zwischen den einzelnen Django-Komponenten. Das ist der Punkt, ab dem man Pylons benutzt.

Verfasst: Donnerstag 31. Mai 2007, 00:35
von veers
Leonidas hat geschrieben:Klar, du kannst in DJango auch eigene Teile benutzen. Aber je länger ich mit Django arbeite, desto mehr merke ich, dass ich andere Komponenten gerne nutzen würde. Sei es, weil das Django-ORM an einigen Stellen buggy ist oder weil die Template-Engine vergleichsweise beschränkt ist. Aber wenn ich etwas auswechsle, dann verliere ich immer mehr von der tollen Integration zwischen den einzelnen Django-Komponenten. Das ist der Punkt, ab dem man Pylons benutzt.
Guter Punkt. Ich muss aber sagen an Django gefällt mir das Dispatching und die Template Engine. Der ORM, das Admin Tool etc. sind nette Zusätze.

Verfasst: Donnerstag 31. Mai 2007, 09:12
von jens
Leonidas hat geschrieben:Aber je länger ich mit Django arbeite, desto mehr merke ich, dass ich andere Komponenten gerne nutzen würde. Sei es, weil das Django-ORM an einigen Stellen buggy ist oder weil die Template-Engine vergleichsweise beschränkt ist. Aber wenn ich etwas auswechsle, dann verliere ich immer mehr von der tollen Integration zwischen den einzelnen Django-Komponenten. Das ist der Punkt, ab dem man Pylons benutzt.
Es kommt halt darauf an, wie viel Zeit und Aufwand man in ein Projekt rein stecken möchte. Danach sollte man die Wahl des passenden Framework richten.

Hat man viel Zeit, stellt man sich die Komponenten selber zusammen. Hat man wenig Zeit oder möchte nicht so viel Aufwand betreiben, nimmt man django und hat alles dabei. Dann muß man natürlich mit einigen Einschränkungen leben. So ist es halt, wenn man es einfach haben will.

Allerdings finde ich, gibt es kaum Einschränkungen mit django ;) Gut, ich hätte gern SQLAlchemy genutzt. Aber eigentlich weiß ich überhaupt nicht warum! Eigentlich nur, weil alle begeistert davon sind. Das django ORM funktioniert z.Z. für mich ganz prima.

Welche Bugs hast du denn im ORM gefunden? Sind die Fehler bekannt?

Was genau findest du an der Template Engine beschränkt?
btw. mir fehlt immer noch der rekusiv Tag, siehe: http://www.python-forum.de/topic-9655.html


Vielleicht sollten wir das auch mal im Wiki festhalten...

Verfasst: Donnerstag 31. Mai 2007, 10:16
von veers
jens hat geschrieben:Was genau findest du an der Template Engine beschränkt?
btw. mir fehlt immer noch der rekusiv Tag, siehe: http://www.python-forum.de/topic-9655.html
Vielleicht nicht so elegant wie Jinjas Lösung aber in eine Datei auslagern und rekursiv Includen?

Gibts einen Grund wieso du nicht einen eigenen Template Tag schreibst oder den von Greenpeace portierst?

Gruss,
Jonas

Verfasst: Donnerstag 31. Mai 2007, 10:26
von jens
veers hat geschrieben:Gibts einen Grund wieso du nicht einen eigenen Template Tag schreibst oder den von Greenpeace portierst?
Ja, ich hab es einfach nicht hinbekommen ;)
Ich muß mich damit aber nochmal genau beschäftigen.

Allerdings blicke ich durch Greenpeace Code nicht wirklich durch... Von daher bleibt nur das selber machen...

Verfasst: Donnerstag 31. Mai 2007, 10:37
von Leonidas
jens hat geschrieben:Allerdings finde ich, gibt es kaum Einschränkungen mit django ;) Gut, ich hätte gern SQLAlchemy genutzt. Aber eigentlich weiß ich überhaupt nicht warum! Eigentlich nur, weil alle begeistert davon sind. Das django ORM funktioniert z.Z. für mich ganz prima.
Siehst du: Du brauchst SQLAlchemy gar nicht. Warum solltest du es dann einsetzen. Das ist in dem Fall sinnbefreit. Was ich gebraucht hätte, waren sortierte Felder im Django-ORM, was ich dann durch ein zusäzliches ``position``-Feld und einiges an Meta-Magie gelöst habe.
jens hat geschrieben:Welche Bugs hast du denn im ORM gefunden? Sind die Fehler bekannt?
Der Mutually-Referential-Bug. Der ist inzwischen zwar geöst, aber das hat auch schon ziemlich lange gedauert.
jens hat geschrieben:Was genau findest du an der Template Engine beschränkt?
Die Argumente an die Filter sind sinnlos gelöst, das i18n-System ist fest an ``gettext`` verdrahtet (habe mir gestern angeschaut wie es in Jinja ist - wesentlich besser), es ist nicht möglich mehrere Variablen zusammenzufassen und sie dann zu ``joinen`` (braucht man, wenn man mehrere Felder aus dem Model mit Kommas zwischendrin anzeigen will), es ist nicht möglich diese Argumente davor noch zu übersetzen, etc. Klar, das meiste lässt sich mit eigenen Tags machen, aber die muss man erstmal schrieben.

ich bin im Moment dabei, eine neue I18N-Maschinerie für DJango zu schreiben, angelehnt an nesh.translation. Habe gestern auch noch django-multilingual gefunden, aber das scheint mir genau der falsche Weg zu sein.

Verfasst: Donnerstag 31. Mai 2007, 11:19
von jens
Leonidas hat geschrieben:Was ich gebraucht hätte, waren sortierte Felder im Django-ORM
Zu dem Thema gehts hier weiter: http://www.python-forum.de/topic-10824.html

Verfasst: Donnerstag 31. Mai 2007, 18:20
von Y0Gi
Vorweg: EnTeQuAk, fme und andere, die sich angesprochen fühlen sollten, gewöhnt euch bitte dringendst an, Zitate mit dem Namen des Autors zu erstellen, da sonst völlig der Kontext flöten geht.

N317V hat geschrieben:Nun es wurde nach einem Framework gefragt, Karigell vorgeschlagen und dann dagegen argumentiert mit "Nicht WSGI-kompatibel". Das kann natürlich ein Aspekt in der Entscheidung für oder gegen ein bestimmtes Framework sein, aber ich hab manchmal den Eindruck, als sei das das allerallerwichtigste überhaupt, während es mir, offen gesagt, völlig wurscht ist. Wie meine Applikation mit der Umwelt kommuniziert, das Problem löse ich pro Installation ein einziges mal, während ich mich mit fast allen anderen Aspekten eines Frameworks doch viel häufiger rumschlagen muss.
Der springende Punkt ist für mich einfach der, dass ein WSGI-basiertes Framework eine feste Schnittstelle besitzt. Dadurch kann sowohl der einzige Anwender als auch eine Masse von Nutzern es auf beliebigem Wege deployen. Sei es Apache, Lighty oder Standalone, auch nur zum Testen oder Weiterentwickeln. Und spätestens wenn ein Tausch des Webservers, ein Umzug auf einen anderen Server, das Nutzen eines zweiten, anders ausgestatteten Servers ansteht, ein essentielles Paket nicht mehr weiterentwickelt wird und/oder gravierende Sicherheitslöcher darin gefunden werden, was einen solchen Wechsel unausweichlich macht, wirst du dir in den Arsch beißen, wenn du dich mit einer Anwendung oder einem Framework fest bspw. Apache+mod_python verschrieben hast. Mit WSGI bleibst du langfristig flexibel.

Ist das nicht ein gravierender Vorteil?

Verfasst: Freitag 1. Juni 2007, 13:56
von N317V
Y0Gi hat geschrieben:Der springende Punkt ist für mich einfach der, dass ein WSGI-basiertes Framework eine feste Schnittstelle besitzt. [...] Ist das nicht ein gravierender Vorteil?
Na klar, das ist ein super Vorteil. Ich kann es aber nicht als alleiniges K.O.-Kriterium gelten lassen, einfach weil ein Framework aus so viel mehr Komponenten und Aspekten besteht. Mich nervt ehrlich gesagt auch dieses WSGI-Kreuzrittertum. Wenn Ihr wollt, dass WSGI weiter verbreitet wird, dann schreibt bitte mehr verständliche Artikel und Tutorials dazu, aber bitte, bitte verschont mich mit sowas wie dem animierten GIF mit den Blitzen. Die Zeit die es kostet sowas zu erstellen, kann man sicherlich sinnvoller nutzen.