Alternative zu Tomcat für Python

Django, Flask, Bottle, WSGI, CGI…
Antworten
piwi
User
Beiträge: 17
Registriert: Montag 18. Januar 2010, 13:37

Moin,

was für Alternativen gibt es zu Apache Tomcat, um Python Apps im Web darzustellen??

Zope???

Schönen Gruß
Piwi
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

piwi hat geschrieben: was für Alternativen gibt es zu Apache Tomcat, um Python Apps im Web darzustellen??
Äh... jeder Webserver mit CGI-Interface würd ich mal behaupten!

Was meinst Du mit "darstellen"?
piwi
User
Beiträge: 17
Registriert: Montag 18. Januar 2010, 13:37

Apache Tomcat ist dafür gedacht, um Java Code auf Servern darzustellen.
Gibt es ein vergleichbares Application Framework, um Python Code auf Servern auszuführen, ausgenommen CGI???
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Man verwendet dafür i.d.R. WSGI, die meisten Server sollten es in irgendeiner Weise unterstützen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

piwi hat geschrieben:Apache Tomcat ist dafür gedacht, um Java Code auf Servern darzustellen.
Ah... so war die Frage im ersten Posting gemeint. Sorry, aber das war sehr unpräzise und missverständlich ausgedrückt.
Zudem: Der Apache-Tomcat ist ein "Servlet"- und "Server Pages"-Container - Darstellung suggeriert dagegen eher etwas wie ein Paste-bin imho.
Gibt es ein vergleichbares Application Framework, um Python Code auf Servern auszuführen, ausgenommen CGI???
Diese Vergleiche hinken ein wenig. CGI ist ja eher eine mögliche Schnittstelle zwischen Applikation und Webserver. Damit Python-Apps auf möglichst vielen Server laufen kann, gibt es die WSGI-Spezifikation. Sofern eine Python-Appliaktion auf WSGI aufsetzt, gibt es verschiedene Schnittstellenimplementierungen, die WSGI auf die unterschiedlichen nativen Webserver-Schnittstellen mappen, wie z.B. CGI, FastCGI oder eben direkt WSGI (beim Apachen über mod_wsgi).
Das garantiert die Lauffähigkeit auf so ziemlich allen Webservern (daher nannte ich CGI als quasi kleinsten Nenner).

Da niemand wirklich gegen Low-Level WSGI programmieren will, gibt es neben Abstraktionsschichten für WSGI (Werkzeug und bottle seien hier mal genannt) auch noch höhere Frameworks wie z.B. Django.

Am besten wirfst Du mal einen Blick ins wiki (oben rechts!) und liest Dir die ettlichen Threads hier im Board dazu durch :-)
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Wenn gemeint ist, welche in Python geschriebene Webserver es gibt (da ja Tomcat ein in Java geschriebener Webserver ist), dann lautet die Antwort IMHO CherryPy. Und was der Servlet-Standard für Java, ist der WSGI-Standard für Python und "zufällig" unterstützt CherryPy diesen. So kann man CherryPy z.B. mit Django oder Bottle zusammen benutzen. Alternativ bietet CherryPy einen eigenen Weg, wie man relativ einfach Webanwendungen bauen kann.

Stefan
piwi
User
Beiträge: 17
Registriert: Montag 18. Januar 2010, 13:37

@sma
Das ist die Aussage nach der ich gesucht habe... :D

Vielen Dank und ein schönes WE
Piwi
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ist natürlich auch die Frage wozu man das braucht. Im Gegensatz zu Java gibt es unter Python weniger die "Not Invented Here"-Mentalität so dass Python-Server üblicherweise für die Entwicklung genommen werden aber fürs Deployment dann oft etablierte und gut getestete Server hergenommen werden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich denke, dass hat weniger mit NIH zu tun, als mit meinem einfacheren Betrieb und Konfiguration. Mit Tomcat ist es viel einfacher (wenn man mit dem Java-Umfeld vertraut ist) auf jeder beliebigen Plattform einen Webserver aufzusetzen, als wenn man je nach Betriebssystem sich mit verschiedenen Server oder auch nur mit so kryptischen http-Konfigurationsdateien herumschlagen muss.
proofy
User
Beiträge: 32
Registriert: Montag 21. März 2011, 12:47

IMHO ist Tomcat kein Webserver, sondern ein Application-Server, der für Webapplikationen ein immer gleiches Umfeld bietet.
Normalerweise wird als Webserver ein Apache httpd vorgeschaltet.
Der Applicationserver übernimmt dabei die Schnittstellen im 3-Schichten Model, zu Datenbanken, zur Authentifizierung, zur Zugriffskontrolle, Fehlerhandling und Logging und mit das wichtigste das Deployment.
So etwas in der Art habe ich in Python noch nicht gefunden bzw. noch nicht die vielen Möglichkeiten (http://wiki.python.org/moin/WebFrameworks) ausprobiert, was dem am nächsten kommt.
deets

Doch, sowas gibt es - Paster:

http://pythonpaste.org/deploy/

Damit kann man verschiedene WSGI-Applikationen unter Praefizes montieren & konfigurieren. ZB mehrere TurboGears2 Anwendungen, die man als EGG installiert hat.
Antworten