2014-04-07 44 views
1

我想從一個GET請求在燒瓶中使用這個答案爲指導How to return images in flask response?爲什麼不能找到這個文件?

我有這樣的代碼在我的根目錄下運行(關閉龍捲風服務器)返回一個jpg文件:

@app.route('/pic/<string:address>', methods= ["GET"]) 
def here(address=None): 
    return send_file(url_for('static', filename='images/123_Octavia_St.jpg'), mimetype='image/jpg') 

我有一個文件位於rootdirectory/static/images/123_Octavia_St.jpg

我收到此錯誤:

IOError: [Errno 2] No such file or directory: '/static/images/123_Octavia_St.jpg' 

這裏有路徑:

$ pwd 
pathto/rootdirectory/static/images 
$ ls 
123_Octavia_St.jpg 

回答

3

不要使用url_for();這是爲了生成URL,而不是文件路徑。

相反,使用send_from_directory()與靜態目錄作爲根:

from flask import app, send_directory 

@app.route('/pic/<string:address>', methods= ["GET"]) 
def here(address=None): 
    return send_from_directory(app.static_folder, 'images/123_Octavia_St.jpg', mimetype='image/jpg') 

,或者對靜態文件,只是重用瓶用來提供靜態文件本身來看,app.send_static_file()

from flask import app 

@app.route('/pic/<string:address>', methods= ["GET"]) 
def here(address=None): 
    return app.send_static_file('images/123_Octavia_St.jpg') 
相關問題