如何使用Flask展示特定文件中的所有图像?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Flask展示特定文件中的所有图像?相关的知识,希望对你有一定的参考价值。

问候语。我是一个蟒蛇初学者,特别是在Flask方面。我想制作一个网页,让我可以根据一些关键词搜索图像,并在网页上返回两个相关的图像。

并且,假设关键字是“Steve jobs”,这些与“Steve jobs”相关的图像将被Google搜索废弃并存储在名为“Steve jobs”的文件中。

问题是我仍然无法显示文件中的图像并返回空白页面。另外,我在StackOverflow中尝试了一个解决方案,但它仍然无法解决。我感到非常困惑和沮丧,与使用Jupyter相比,很难使用Flask在网页上显示输出。提前致谢。

hello.朋友

@app.route("/about",methods=['GET', 'POST'])
def about():
    ...
    DIR = os.path.join(os.getcwd())
    DIR = os.path.join(DIR, query.split()[0])
    ...
    def show_index(): 
        for i,(img,Type) in enumerate(ActualImages[:2]):
            try:
                 req = urllib.request.Request(img, headers=header)
                 raw_img = urllib.request.urlopen(req).read()
                 cntr = len([i for i in os.listdir(DIR) if image_type in i]) + 1
                 print(cntr)

                 if len(Type)==0:
                     f = open(os.path.join(DIR,image_type + "_"+ str(cntr)+".jpg"),'wb')
                 else:
                      f = open(os.path.join(DIR,image_type + "_"+ str(cntr)+"."+Type),'wb')
                      f.write(raw_img)
                      f.close()

            except Exception as e:
                  print('>>> Could not load: '+img)
                  print(e)

        return f

    return render_template('about.html', f = f)

about.html

<!DOCTYPE html>
<html>
<head>
    <title>Index</title>
</head>
<body>
    <img src="{{f}}" alt="f">
</body>
</html>
答案

典型的HTML图像标记如下所示:

<img src="/path/image.gif" alt="My Image"/>

如您所见,src属性包含一个URL,告诉浏览器在哪里可以找到图像。它会从那里下载并下载图像。它不包含图像本身。您的代码似乎试图将图像文件的内容加载到HTML中,这将无法正常工作。

(注意 - 可以直接将图像嵌入到HTML中,但这很不寻常,所以我不会谈论它。)

鉴于此,您需要的是将图像放在某处,并根据How do i link to images not in Static folder in flask的答案提供和引用它们。

以上是关于如何使用Flask展示特定文件中的所有图像?的主要内容,如果未能解决你的问题,请参考以下文章

Flask - 使用相同名称覆盖图像并显示新图像

如何在android画廊上显示特定文件夹中的图像

如何强制使用 NSPredicate 从硬盘检索图像的特定顺序

Flask小demo---代码统计系统

如何使用python opencv删除文件夹中的特定图像

使用 Flask 和 JS 从服务器下载文件