Seite 27 von 30
Re: Bottle: Micro Web Framework
Verfasst: Freitag 8. Oktober 2010, 22:46
von jbs
Du solltest natürlich erst in das richtige Verzeichnis wechseln und dann importieren.
Re: Bottle: Micro Web Framework
Verfasst: Freitag 8. Oktober 2010, 22:56
von MrNiceTry
Was meinst Du mit "Du solltest natürlich erst in das richtige Verzeichnis wechseln".
Es ist alles im gleichen Verzeichnis: /var/www/todo
Re: Bottle: Micro Web Framework
Verfasst: Freitag 8. Oktober 2010, 23:21
von jbs
Na schau dir mal deinen Code an. Du wechselt ja mit os.chdir in dein Verzeichnis. Nur vorher versuchst du bottle zu importieren - und das kann er einfach nicht finden. Importierst du bottle nach dem os.chdir, sollte es eigentlich klappen.
Re: Bottle: Micro Web Framework
Verfasst: Freitag 8. Oktober 2010, 23:29
von MrNiceTry
Danke.
Habe wie folgt geändert:
Code: Alles auswählen
import sys, os
sys.path = ['/var/www/todo/'] + sys.path
os.chdir(os.path.dirname(__file__))
import bottle
import todo # This loads your application
application = bottle.default_app()
Funktioniert.
Sieht zumindest so aus. Bin morgen sicher.
Danke nochmal und gute Nacht.
MrNiceTry
Re: Bottle: Micro Web Framework
Verfasst: Montag 11. Oktober 2010, 18:47
von MrNiceTry
Wie muß ein Decorator aussehen, der mir ALLE Unterverzeichnisse durchreicht.
Also in jeder Tiefe.
Danke
MrNiceTry
Re: Bottle: Micro Web Framework
Verfasst: Montag 11. Oktober 2010, 20:26
von noisefloor
Hallo,
du meinst, dass z.B.
/meine_app
/meine_app/foo
/mein_app/foo/bar/irgend/was
alle von der gleichen Route abgefangen werden?
Das sollte mit einer RegEx funktionieren.
Code: Alles auswählen
@bottle.route('/meine_app')
@bottle.route('/meine_app/:#.*#')
def meine_funktion():
...
Gruß, noisefloor
Wie wurde Python/Bottle gestartet ?
Verfasst: Mittwoch 27. Oktober 2010, 13:21
von MrNiceTry
(Wie) kann man ermitteln, wie Python/Bottle aufgerufen worden ist ?
Erfolgte der Aufruf von der Konsole oder durch Apache/WSGI ?
Danke.
MrNiceTry
Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 13:27
von Dauerbaustelle
Es läuft immer ein WSGI-Server; wenn du Bottle-Anwendungen "aus der Konsole" startest, dann wird eben ein WSGI-Server in der Konsole gestartet :-)
Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 13:28
von MrNiceTry
Ja, aber meine Frage ist: Kann man ermitteln WIE Python/Bottle gestartet wurde.
Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 13:52
von Hyperion
MrNiceTry hat geschrieben:Ja, aber meine Frage ist: Kann man ermitteln WIE Python/Bottle gestartet wurde.
Wozu? Vielleicht hilft es uns, Dein eigentliches Problem zu verstehen...
Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 13:58
von MrNiceTry
Meine Anwendung soll sich anders verhalten, wenn sie vom Apache aufgerufen wird, als wenn der Aufruf manuell von der Konsole gemacht wird.
Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 14:17
von Hyperion
MrNiceTry hat geschrieben:Meine Anwendung soll sich anders verhalten, wenn sie vom Apache aufgerufen wird, als wenn der Aufruf manuell von der Konsole gemacht wird.
Naja das ist schon klar, aber inwiefern denn? Sind es inhaltlich wirklich andere Dinge oder geht es eher in Richtung Debug-Modus an / aus?
Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 14:29
von MrNiceTry
Sorry,
aber was soll das an meiner Frage ändern?
Ich kann gerne den Sinn und die Struktur meiner Anwendung erläutern.
Aber meine Frage ist doch einfach und klar formuliert, oder?
"Kann man ermitteln WIE die (Bottle-)Anwendung aufgerufen wurde."
(Entschuldigung. Aber falls das nicht klar verständlich ist, lasst es mich bitte wissen!)
Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 14:30
von Dauerbaustelle
Sind zum Beispiel Port oder Host unterschiedlich für die beiden Server? Dann könntest du dir einfach das `environ` angucken.
Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 14:40
von MrNiceTry
'environ' hat mich nicht weiter gebracht.
Über host und port kann ich das nicht differenzieren. Die können durchaus gleich sein.
Irgendwie kann ich das schon rausfinden. Ich könnte z.B. Startparameter verwenden.
Ich hatte nur gehofft, es gäbe eine elegantere Methode, möglicherweise aus dem System oder aus Python die Info zu bekommen.
MrNiceTry
Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 14:42
von Dauerbaustelle
Hyperion fragt deswegen, weil er die Vermutung hat, dass es für dein Problem eine einfachere Lösung gibt als die von dir erdachte. Wenn du das Problem erklärst, kann man dir vielleicht Hinweise geben, wie man das ohne diese Starter-Prüfung lösen kann.
Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 15:11
von noisefloor
Hallo,
kann man ermitteln, welcher Nutzer den Prozess gestartet bzw. unser welchem Nutzer er läuft?
Wenn's Apache sollte der Nutzer ziemlich sicher ein anderen sein als ein manueller Start?
BTW: Reicht der Port wirklich nicht? Default wäre ja Port 80 vs. Port 8080 (oder ein anderen, unprivilegierter Port).
Gruß, noisefloor
P.S.: Es würde mich auch interessieren, was in Abhängigkeiten von Startmethode anders sein soll.

Re: Bottle: Micro Web Framework
Verfasst: Mittwoch 27. Oktober 2010, 19:34
von jens
noisefloor hat geschrieben:kann man ermitteln, welcher Nutzer den Prozess gestartet bzw. unser welchem Nutzer er läuft?
Das kann man definitiv. Schau mal im os modul nach...
Re: Bottle: Micro Web Framework
Verfasst: Donnerstag 28. Oktober 2010, 12:16
von DasIch
Da gibt es keinen erkennbaren Unterschied und selbst wenn da einer wäre dürfte man sich darauf nicht unbedingt verlassen können.
Nutz für solche Fälle einfach unterschiedliche Konfigurationen.
Re: Bottle: Micro Web Framework
Verfasst: Montag 7. Februar 2011, 05:48
von snafu
Bottle-Bericht im
freien Magazin 02/2011 (ab Seite 23).
(Ich sehe gerade, Marcel ist da selbst im Interview...)