Bottle: Micro Web Framework
Du solltest natürlich erst in das richtige Verzeichnis wechseln und dann importieren.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
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.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Danke.
Habe wie folgt geändert:
Funktioniert.
Sieht zumindest so aus. Bin morgen sicher.
Danke nochmal und gute Nacht.
MrNiceTry
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
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
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.
Gruß, noisefloor
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():
...
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
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 :-)
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wozu? Vielleicht hilft es uns, Dein eigentliches Problem zu verstehen...MrNiceTry hat geschrieben:Ja, aber meine Frage ist: Kann man ermitteln WIE Python/Bottle gestartet wurde.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Naja das ist schon klar, aber inwiefern denn? Sind es inhaltlich wirklich andere Dinge oder geht es eher in Richtung Debug-Modus an / aus?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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
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!)
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!)
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Sind zum Beispiel Port oder Host unterschiedlich für die beiden Server? Dann könntest du dir einfach das `environ` angucken.
'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
Ü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
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
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.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
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.
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.
Bottle-Bericht im freien Magazin 02/2011 (ab Seite 23).
(Ich sehe gerade, Marcel ist da selbst im Interview...)
(Ich sehe gerade, Marcel ist da selbst im Interview...)