如何使用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展示特定文件中的所有图像?的主要内容,如果未能解决你的问题,请参考以下文章