2014-04-07 46 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') 
相关问题