Im Zuge eines von mir gehaltenen Seminars mit dem Thema "Web-Frameworks mit Python" habe ich eine Ausarbeitung erstellt, die hier:
http://www.fh-wedel.de/~si/seminare/ws0 ... ython0.htm
online steht. Ich kann sie nur empfehlen
Neben von Eigenschaften, Vor- und Nachteilen von Python-Web-Frameworks werden vorallem die großen Frameworks (TurboGears, Django und Zope) vorgestellt. Also ganz nützlich für alle, die sich mal einen Überblick verschaffen wollen.
Python-Web-Frameworks
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Zumindest die großen Frameworks (Django, Python, TurboGears) sind sofort lauffähig
Nur bei Zope der Fall in der Tat kommt Zope oftmals nicht einmal mit anderen Python-Versionen zurecht.Hinzu kommt, dass im Normfall ein Python-Interpreter automatisch mitgeliefert wird, so dass dieser nicht mehr gesonder installiert werden muss.
Quatsch, wenn ich dich an einen Server setze, wirst du die Performance von mod_python und FastCGI nicht unterscheiden können.Das Einbinden von Python-Programmen über CGI oder FastCGI ist im Allgemeinen sehr langsam
Die ist gar nicht integriert, das ist ein eigenständiges Projekt.Für Python-Programm bietet sich außerdem die seit 2000 im Apache integrierte mod_python-Schnittstelle an.
Das war der Fall für TurboGears 0.7, aber TurboGears 1.0 besteht aus unzähligen weiteren Teilen. Wobei ich gehört habe, dass die irgendwann auf SQLAlchemy und Genshi umsteigen wollen.TurboGears ist aus den folgenden vier grundlegenden nicht-full-stack Framweworks aufgebaut
TurboGears hat Version 1.0.1 erreicht, das bedeutet dass es eher keine Beta ist. Django mit 0.95.1 würde ich ebenfalls nicht als Beta-Version bezeichnen, weil das ein pre-1.0 und kein Betarelease ist.TurboGears und Django liegen aktuell noch als Beta-Version vor, das Arbeiten mit ihnen ist aber bereits sehr gut möglich.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
sind die anderen, kleineren Frameworks. So hätte ich gerne etwas neues über das Metaframework Paste gelesen, über die WSGI-Ebene Paste, über das gute alte Webware, etc.rafael hat geschrieben:Was mir bei dem Artikel fehlt,
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!BlackJack hat geschrieben:Karrigell wird in comp.lang.python auch öfter angepriesen.
Ich habe soeben Karrigell bei mir installiert und ausprobiert. Es dauerte keine zehn Minuten und ich konnte damit schon ein kleines Beispiel mit Formulardaten erstellen.
Wenn ich jetzt noch raus kriege, wie man am Einfachsten eine Vorlagensprache wie z.B. TAL/METAL (SimpleTal) oder KID oder so was ähnliches integriert, dann ergebe ich mich Karrigell kampflos.
So etwas einfaches habe ich noch nie gesehen. Man muss nicht mal etwas installieren. Man entpackt die TAR-Datei und führt im entpackten Ordner das Program ``Karrigell.py`` aus. Schon läuft der Webserver auf Port 80 und man kann die Beispiele ausprobieren.
Dieser Server lässt sich mit wenigen Handgriffen hinter einem Apachen (mod_proxy) betreiben. Das bin ich von Zope ja auch schon so gewöhnt -- ist also nichts Neues für mich.
Das Ding funktioniert so einfach, dass ich es nicht glauben kann.
Das Beste ist, dass man von Karrigell HTML-Dateien oder Bilder usw. <<ohne zusätzliche Arbeit>> ausliefern lassen kann. Man muss in keiner Datei irgendwelche "Regular Expressions" anpassen, nur damit irgendein Handler die Dateien zurück gibt. Einfach rein in den Serverordner und schon wird die Datei von Karrigell ausgeliefert.
Ich werde Karrigell nach meinem Bankomatkassen-Schnittstellen-Projekt, das mich sicher noch bis in den Februar hinein beschäftigen wird, genau testen und ein paar Belastungs- und Strategietests machen.
TAL zu integrieren ist sicher nicht schwer. Vielleicht schaffe ich es auch noch, eine einfache (schreibfaule) Lösung für METAL und so eine Art Acquisition (wie im Zope) zu integrieren. Dann gehe ich feiern.
http://karrigell.sourceforge.net/
lg
Gerold
Zuletzt geändert von gerold am Samstag 27. Januar 2007, 09:09, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Natürlich - denn Colubrid strebt eine saubere Lösung an. Und einen Python-HTTP-Server zu benutzen, um Mediendaten auszuliefern ist praktisch - aber nicht besonders performant. Es gibt aber für WSGI "static" zum nachrüsten.jens hat geschrieben:Leider liefert der allerdings keine Statischen Dateien aus, das ist echt schade
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Bei mir geht es dabei allerdings nicht um die Performance... Der Entwicklungs-Server ist eh nicht für den Produktiven Einsatz gedacht...
Ich entwickel aber z.B. eine Gallerie-Plugin für PyLucid... Die kann ich mit dem colubrid Server allerdings nicht gut testen, weil die Bilder/Thumbnails nicht ausgeliefert werden...
Ich entwickel aber z.B. eine Gallerie-Plugin für PyLucid... Die kann ich mit dem colubrid Server allerdings nicht gut testen, weil die Bilder/Thumbnails nicht ausgeliefert werden...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Daher kannst dun static problemlos integrieren. Warum willst du, dass Colubrid die Funktionalität von "static" kopiert? Macht doch keinen Sinn und ist eigentlich auch das Gegenteil von WSGI.jens hat geschrieben:Bei mir geht es dabei allerdings nicht um die Performance... Der Entwicklungs-Server ist eh nicht für den Produktiven Einsatz gedacht...
Ich mache das immer so (allerdings mit Django, was aber aufs gleiche kommt, denn Django bietet auch einen Entwicklungsserver mit autoreloading und ohne statische Dateien), dass ich einen extra-VHost habe mit einer eigenen Domain und dort die Mediadaten interlegt habe. Diese Domain wird nun vom Produktivserver direkt gehostet und im HTML-Code sind die Links alle auf den Mediaserver. Somit habe ich sowohl den Entwicklungsserver als auch statische Dateien. Ohne größere Scherereien. Als ich darauf gekommen bin, wie elegant diese Lösung ist musste ich zugeben, dass die Django-Entwickler wieder einmal mitgedacht haben. Und das lässt sich natürlich ebenso auf Colubrid übertragen.jens hat geschrieben:Ich entwickel aber z.B. eine Gallerie-Plugin für PyLucid... Die kann ich mit dem colubrid Server allerdings nicht gut testen, weil die Bilder/Thumbnails nicht ausgeliefert werden...
Zuletzt geändert von Leonidas am Samstag 27. Januar 2007, 11:47, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Code: Alles auswählen
if settings.DEBUG:
urlpatterns += patterns('',
(r'^m/(?P<path>.*)$', 'django.views.static.serve', {'document_root':join(VERZEICHNIS, 'media')}),
)
klappt soweit ganz gut hier, die Auslieferung von statischen Dateien über den eingebauten Entwicklungsserver[/code]
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
Klar tut es das ist aber absolut nicht für einen produktiven Betrieb zu empfehlen!
Von http://www.djangoproject.com/documentat ... tic_files/
Von http://www.djangoproject.com/documentat ... tic_files/
MfG apollo13The big, fat disclaimer
Using this method is inefficient and insecure. Do not use this in a production setting. Use this only for development.
For information on serving static files in an Apache production environment, see the Django mod_python documentation.
natürlich nicht, daher ja auch die Abfrage
Code: Alles auswählen
if settings.DEBUG:
Ne invoces expellere non possis
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]
[url=xmpp://florian@florianheinle.de]xmpp:florian@florianheinle.de[/url]