如何链接到不在flask中的静态文件夹中的图像

时间:2014-11-17 11:15:44

标签: python static flask openshift url-for

在烧瓶中,如何提供不在静态文件夹中的图像?

我目前将用户上传的照片保存在flask文件夹之外的目录上(On openshift,当前保存在app-root/data下的数据文件夹中的图像,并且文件夹位于app-root/repo/ })。

在我的模板中,我如何提供图像文件?

使用url_for,如何引用在flask文件夹之外的这些图像文件?

- data/
 |
  -- uploads/
- repo/
 |
  -- app/
    |
     -- __init__.py

正如您可以在flask app文件夹外看到数据文件夹。如何从flask app目录生成存储在data/uploads(一级)中的文件的链接是个问题?

1 个答案:

答案 0 :(得分:15)

你有 send_from_directory 功能可以做你想做的事情,我会做的是声明一个名为 MEDIA_FOLDER 的常量,其中包含媒体文件的路径找到然后,你唯一需要做的就是调用这个函数:

from config import MEDIA_FOLDER

@app.route('/uploads/<path:filename>')
def download_file(filename):
    return send_from_directory(MEDIA_FOLDER, filename, as_attachment=True)

然后,要调用它,您只需执行此操作:

{{ url_for('download_file', filename='dogs.jpg') }}

您可以获得有关此here的更多信息。