gpt4 book ai didi

python - 使用 Flask 无法正确显示图像

转载 作者:行者123 更新时间:2023-12-01 00:38:30 24 4
gpt4 key购买 nike

我正在设置一个需要显示一些图像的应用程序。我的图像位于应用程序文件夹之外,这就是我使用它的原因:

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

我的文件夹的架构是:

--images1
|__ image1.png
|__ image2.png
--images2
|__ image3.png
|__ image4.png
--web
|__ app.py
|__ templates
|__ index.html

我已将所有图像路径存储在列表中:

images_path = ['image1.png', 'image2.png', ...]

目前,我尝试将图像显示为:

{% for image in images_path %}

<img src="{{ url_for('download_file', filename="{{ image }}") }}">

使用此功能,它始终显示相同的图像。在我的示例中为 image1.png。我尝试检查 for 循环是否有效,并且它有效。

我已经尝试过这个:

{{ image }} CHECKER
<img src="{{ url_for('download_file', filename="{{ image }}") }}">

它显示在我的页面上:

>>> 

image1.png CHECKER then the `image1.png`

image2.png CHECKER but also `image1.png`
<小时/>

更新1

在我的 app.py 中,我添加了以下内容:

@app.route('/<path:filename>')
def download_file(filename):
images_folder = [images1, images2]
try:
for image_folder in imagesfolder:
MEDIA_FOLDER = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) + str(image_folder) + "\\"
return send_from_directory(MEDIA_FOLDER, filename=filename, as_attachment=True)
except FileNotFoundError:
abort(404)

在我的 template.html 上,我添加了以下内容:

{% for image in images_path %}

<img src="{{ url_for('download_file', filename=image) }}">

这里如何正确设置路径?如何链接图像及其目录?

<小时/>

更新2

我改变了我的脚本:

    @app.route('/<path:filename>')
def download_file(filename):
try:
return send_file(filename, as_attachment=True)
except FileNotFoundError:
abort(404)

文件名将由以下方式定义:

>>>> filename = str(os.getcwd()) + str(list_machine[i]) + str(elem)

当我检查页面上的元素时,URL 似乎是正确的,但图像未显示。

<小时/>

如何显示文件夹中存储的所有图像?

提前致谢。

最佳答案

你可以试试这个:

<img src="{{ url_for('download_file', filename=image) }}">

image 变量定义为:image = str(os.getcwd()) + '/path/to/image'

您必须通过列出文件来定义此变量,您可以使用:os.listdir('path/directory')

名为 download_file 的函数应该是:

@app.route('/<path:filename>')
def download_file(filename):
try:
filename=os.path.join(app.root_path, filename)
return send_file(filename)
except FileNotFoundError:
abort(404)

不要忘记导入 send_file 函数。

这对我有用。希望能帮助到你。

关于python - 使用 Flask 无法正确显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57553732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com