Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何链接到flask中不在静态文件夹中的图像_Python_Static_Flask_Openshift_Url For - Fatal编程技术网

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

Python 如何链接到flask中不在静态文件夹中的图像,python,static,flask,openshift,url-for,Python,Static,Flask,Openshift,Url For,在flask中,如何提供不在静态文件夹中的图像 我当前将用户上传的照片保存在flask文件夹外的目录中(在openshift上,图像当前保存在app root/data下的数据文件夹中,flask文件位于app root/repo/) 在我的模板中,如何提供图像文件 使用的url\u,如何引用flask文件夹外的这些图像文件 - data/ | -- uploads/ - repo/ | -- app/ | -- __init__.py 如您所见,数据文件夹位于f

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

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

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

使用的
url\u,如何引用flask文件夹外的这些图像文件

- data/
 |
  -- uploads/
- repo/
 |
  -- app/
    |
     -- __init__.py
如您所见,数据文件夹位于flask app文件夹外。问题是如何从flask app目录生成存储在
数据/上传
(一级以上)中的文件链接?

您有功能,可以实现您想要的功能,我要做的是声明一个名为媒体文件夹的常量,其中包含媒体文件所在的路径,然后,您需要做的唯一一件事就是像这样调用函数:

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获取文件的链接吗?@sarul我刚刚编辑了这篇文章,但基本上你只需要做{url_for('download_file',filename='dogs.jpg')}}}}}例如,我试图在我的img标签的src部分引用url_,但似乎仍然无法让它工作。我用文件结构更新了我的问题。我实际上是在尝试为存储在另一个目录中的flask应用程序的数据/上传中存储的文件生成文件路径检查您的MEDIA_文件夹路径,因为路径应该始终是MEDIA_文件夹+img/dogs.jpg,例如,就像静态内容的url一样。对于您的应用程序结构,媒体文件夹应该有如下内容:
MEDIA\u FOLDER=os.path.join(os.path.dirname(os.path.dirname(os.path.dirname)(os.path.abspath(u文件_u))),“data”)
谢谢Leandro。我正在硬编码媒体文件夹的路径,但无法使其工作。当我用上面提到的os.path,dirname函数切换它时,它工作了!
{{ url_for('download_file', filename='dogs.jpg') }}