我在这里提到的链接:More than one static path in local Flask instance,并试图让显示在浏览器选项卡中的图像文件,但不能这样做。无法排除错误。 stored_name是存储在由app config常量变量指定的路径中的文件的物理文件名:'UPLOAD_FOLDER'。 此文件夹不在静态文件夹及其子文件夹路径中。我想增加文件(也可能是图像文件)的存储容量,稍后添加硬盘空间,如果我使用静态文件夹存储,这很困难。我不希望应用程序初始化(工作)瓶子api中的自定义静态路径?
代码片段中重写静态文件夹:
从瓶进口send_from_directory
@app.route('/api/v1.0/docs/<path:filename>', methods=["GET"])
def img_render(filename):
print 'Called here'
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
@app.route('/api/v1.0/docs/<int:doc_id>',methods=["GET"])
def image_rendering(doc_id):
s = select([docs]).where(docs.c.id==doc_id)
rs = conn.execute(s).fetchone()
filename = str(rs[docs.c.stored_name])
return url_for('img_render', filename=filename)
HTML模板:
<!DOCTYPE html>
<html>
<body>
<img src="{{url_for('img_render', filename=filename) }}" />
</body>
</html>
的模板在模板文件夹中。如果我的应用程序的初始化过程覆盖原来的静态文件夹,我能够获得在浏览器中显示的图像,但我不得不改变我的参考应用程序的静态文件夹OR我会上传图片到静态文件夹从应用程序,我不想做的。什么是错误的,它只是显示图像的浏览器例如路径:
/api/v1.0/docs/1_20160707_121214.jpg
,而不是图像本身?代码中的错误在哪里?使用烧瓶v0.11,linux 2.7。
我已经尝试了上面也。它只是显示缩略图,而不是实际的图像。 – user956424
在你的'img_render'函数中,不是打印'在这里调用',而是打印传递给函数的文件名,即'打印文件名'。这是图像的预期名称吗? – pjcunningham
是的,我得到的文件名正确 – user956424