Hallo snatch!
snatch hat geschrieben:In der INI Datei hast du reale Ordner für css und images festgelegt. Das ist logisch, aber was ist mit Ordnern wie "my1stsubdir" o. "my2ndsubdir"? Ich habe es bisher nämlich so verstanden das die Ordnerstruktur aus der URL auf Klassen und Funktionen zurück zu führen ist und nicht auf reale Ordner. Ist es in dem Fall möglich über die URL auf diese realen Ordner zuzugreifen oder passiert das gar nicht über die URL?
Wie und wofür nutzt du die realen Ordner?
Wenn ich z.B. Bilder in einer HTML-Seite verwende, die nur in diese eine Seite gehören, dann speichere ich die Bilder dieser HTML-Seite in den gleichen Ordner, in dem auch die HTML-Seite gespeichert ist. Ich habe mir angewöhnt, den meisten HTML-Seiten einen eigenen Ordner im Dateisystem zu gönnen. So habe ich immer eine abgeschlossene Einheit für sich. Eine HTML-Seite mit allen zugehörigen Bildern. Will ich diese Seite los werden, dann lösche ich diesen Ordner mit all seinen Bildern. Möchte ich die HTML-Seite unter einem anderen URL zur Verfügung stellen, dann verschiebe ich den Ordner mit all seinen Bildern.
Genau diese, schon vielfach bewährte Arbeitsweise will ich mir nicht durch einen Web-Applikationsserver durcheinander bringen lassen. Natürlich ist CherryPy so ausgelegt, dass es den URL aus dem Tree -- den Klassen und Methoden unterhalb des Root-Objekts -- zusammensetzt. Aber auch dann, wenn ich in CherryPy eine Methode habe, die für z.B. die Kontaktseite zuständig ist, dann wird es bei mir im Dateisystem immer auch einen logisch zugehörigen Ordner geben, in dem alle Bilder für diese Kontaktseite gespeichert sind.
Dann gibt es noch einen Grund für die realen Ordner im Dateisystem. In meinem Erfahrungsbericht arbeite ich mit Cheetah-Templates. Und ich habe die CherryPy-Anwendung so umgeschrieben, dass immer dann wenn zu einem URL keine zugehörige Methode gefunden werden kann, die Anwendung im zum URL gehörenden Ordner im Dateisystem nach einer Cheetah-Template sucht und diese anzeigt.
So ist es möglich, den größten Teil der Website aus einzelnen Cheetah-Templates zu erstellen, ohne auch nur eine einzige Zeile Code der CherryPy-Anwendung ändern zu müssen. Man erstellt einfach einen neuen Ordner und legt dort die Cheetah-Templates und die Bilder rein. Fertig!
snatch hat geschrieben:wie und ob es möglich ist CherryPy hinter einem Apache oder Lighttpd Server zu nutzen?
CherryPy basiert auf WSGI und das ist ein Standard der es ermöglicht, die Anwendung entweder als eigenständigen Server oder auch hinter einem Apachen oder Lighttpd laufen zu lassen.
-
http://www.cherrypy.org/wiki/WSGI
-
http://projects.amor.org/misc/wiki/ModPythonGateway
-
http://code.google.com/p/modwsgi/wiki/I ... thCherryPy
snatch hat geschrieben:Du hast bisher immer alle Klassen in einer Datei dargestellt. Natürlich ist es in einem Tutorial einfacher für die Darstellung oder ist das so Standart bei CherryPy das alles in einer Datei gespeichert wird?
Mehrere Dateien zu benutzen, bringt nur dann einen Vorteil, wenn du mit anderen Python-Modulen interagieren musst. Wenn das nicht der Fall ist, dann verkompliziert jede zusätzliche Datei dein Programm ohne weiteren Zusatznutzen.
Jede Klasse einfach so in eine eigene Datei zu speichern bringt keine Vorteile. Also mache ich es auch nicht. Es ist in Python nicht üblich, Programme komplizierter zu machen als sie sein müssten.
mfg
Gerold