Python-Web-Frameworks

Gute Links und Tutorials könnt ihr hier posten.
Antworten
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Donnerstag 25. Januar 2007, 14:14

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 :D

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.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 25. Januar 2007, 14:37

Zumindest die großen Frameworks (Django, Python, TurboGears) sind sofort lauffähig
:?:
Hinzu kommt, dass im Normfall ein Python-Interpreter automatisch mitgeliefert wird, so dass dieser nicht mehr gesonder installiert werden muss.
Nur bei Zope der Fall in der Tat kommt Zope oftmals nicht einmal mit anderen Python-Versionen zurecht.
Das Einbinden von Python-Programmen über CGI oder FastCGI ist im Allgemeinen sehr langsam
Quatsch, wenn ich dich an einen Server setze, wirst du die Performance von mod_python und FastCGI nicht unterscheiden können.
Für Python-Programm bietet sich außerdem die seit 2000 im Apache integrierte mod_python-Schnittstelle an.
Die ist gar nicht integriert, das ist ein eigenständiges Projekt.
TurboGears ist aus den folgenden vier grundlegenden nicht-full-stack Framweworks aufgebaut
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 und Django liegen aktuell noch als Beta-Version vor, das Arbeiten mit ihnen ist aber bereits sehr gut möglich.
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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
rafael
User
Beiträge: 189
Registriert: Mittwoch 26. Juli 2006, 16:13

Donnerstag 25. Januar 2007, 16:09

EyDu hat geschrieben:Ich kann sie nur empfehlen :D
Eigenlob stinkt! :D

Was mir bei dem Artikel fehlt, ist so ein Überblick über die ganzen Features und so, wo man dann sofort sieht, für wen was geeignet ist.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 25. Januar 2007, 22:02

rafael hat geschrieben:Was mir bei dem Artikel fehlt,
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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Donnerstag 25. Januar 2007, 22:40

Karrigell wird in comp.lang.python auch öfter angepriesen.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 26. Januar 2007, 00:35

BlackJack hat geschrieben:Karrigell wird in comp.lang.python auch öfter angepriesen.
Hi!

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. 8)

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. :D

:mrgreen: :mrgreen: :mrgreen: :mrgreen:

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.
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 26. Januar 2007, 08:22

Also colubrid kann auch einfach einen lokalen WebServer starten. Leider liefert der allerdings keine Statischen Dateien aus, das ist echt schade :(

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:

Freitag 26. Januar 2007, 17:11

jens hat geschrieben:Leider liefert der allerdings keine Statischen Dateien aus, das ist echt schade :(
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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 26. Januar 2007, 17:23

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...

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:

Freitag 26. Januar 2007, 18:03

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...
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: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 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.
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 Modvoice
Benutzeravatar
tiax
User
Beiträge: 152
Registriert: Samstag 23. Juli 2005, 17:28
Kontaktdaten:

Samstag 27. Januar 2007, 02:36

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]
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Dienstag 6. Februar 2007, 19:38

Klar tut es das ist aber absolut nicht für einen produktiven Betrieb zu empfehlen!
Von http://www.djangoproject.com/documentat ... tic_files/
The 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.
MfG apollo13
Benutzeravatar
tiax
User
Beiträge: 152
Registriert: Samstag 23. Juli 2005, 17:28
Kontaktdaten:

Dienstag 6. Februar 2007, 19:54

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]
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Dienstag 6. Februar 2007, 20:13

Pardon da habe ich wohl etwas überlesen *gg*
Aber so früh kann man eigentlich doch noch nicht schlafen gehen, oder?
Antworten