Bottle: Problem mit static_file

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

folgender Code:

Code: Alles auswählen

from bottle import route, static_file
import os.path

graph_root = 'home/zu/mir/'

@route('/graphen/:name')
def send_graph(name):
    static_file(name,os.path.join(graph_root,'graphen'))
liefert nichts zurück (auch keinen Fehler), auch wenn man für `name` eine existierenden Datei (z.B. "bild.png") angibt.

Ersetzt man aber `static_file` durch das veraltete `send_file` funktioniert das 1A.

Und ich weiß nicht, warum... :(

Gruß, noisefloor
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

Problem gelöst: Die Route muss auf `/static` enden, dann funktioniert es mit `static_file`.
`send_file` kann dann wohl - im Gegensatz zu `static_file` - aus jedem Verzeichnis senden.

@Defnull: Schreib das doch mal explizit in die Doku rein. :-)

Gruß, noisefloor
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Eigentlich tun send_file() und static_file() exakt das selbe, mit dem Unterschied das send_file() ne exception wirft und static_file() das file-objekt nur zurück gibt (und das ist auch genau so dokumentiert). Dein erstes Beispiel kann also gar nicht funktionieren, da das 'return' vor dem 'static_file()' fehlt.

Die Route muss auch nicht auf '/static' enden. Ich weis nicht, wie du darauf kommst.
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Dein erstes Beispiel kann also gar nicht funktionieren, da das 'return' vor dem 'static_file()' fehlt.
Ich dachte ja erst, dass es ein C&P Fehler ist... ist es aber nicht. Habe wirklich das `return` vergessen. Wie peinlich. :oops:

Mit `return` funktioniert es auch mit `static_file`.

Kann mal ein Moderator diesen Thread löschen oder zumindest verstecken? Dann ist es nicht mehr ganz so peinlich. 8)

Gruß, noisefloor
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

noisefloor hat geschrieben:Hallo,
Dein erstes Beispiel kann also gar nicht funktionieren, da das 'return' vor dem 'static_file()' fehlt.
Ich dachte ja erst, dass es ein C&P Fehler ist... ist es aber nicht. Habe wirklich das `return` vergessen. Wie peinlich. :oops:

Mit `return` funktioniert es auch mit `static_file`.

Kann mal ein Moderator diesen Thread löschen oder zumindest verstecken? Dann ist es nicht mehr ganz so peinlich. 8)

Gruß, noisefloor
Wie hieß nochmal die Funktion, Announcement, oder?
[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]
Antworten