Python-Web-Frameworks

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

Python-Web-Frameworks

Beitragvon EyDu » 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/ws06/Ausarbeitung/09.Python/python0.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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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

Re: Python-Web-Frameworks

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

Re: Python-Web-Frameworks

Beitragvon Leonidas » 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

Beitragvon BlackJack » Donnerstag 25. Januar 2007, 22:40

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

Beitragvon gerold » 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: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

Beitragvon Leonidas » 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: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

Beitragvon Leonidas » 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:

Beitragvon tiax » 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
xmpp:florian@florianheinle.de
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Beitragvon apollo13 » 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:

Beitragvon tiax » 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

xmpp:florian@florianheinle.de
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Beitragvon apollo13 » 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?

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder