gpt4 book ai didi

python - Flask网页找不到图片文件

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:51 25 4
gpt4 key购买 nike

在 Raspberry Pi 上,我编写了一个简单的 Flask 应用程序,可在网页上显示服务器的当前日期和时间。那部分效果很好。该页面还应显示图像。那部分不起作用。图片存放在app文件夹下的photos文件夹中:Web_Test/photos。我使用存储在静态文件夹中的 css 文件,效果很好。我使用 url_for 创建图像的 URL:

<p><img src="{{url_for('photos', filename='image1.jpg')}}"></p>

由于 photos 不是 url_for 命令的已知端点,我使用了:app.add_url_rule('/photos/<path:filename>', view_func=app.send_static_file)将照片文件夹添加为端点。每次我从网络浏览器访问网页时,我从中运行 python (python3 photo.py) 的命令窗口都会显示 GET /photos/image1/jpg HTTP/1.1" 404 .没有具体的错误,也没有图像。我在这里阅读了很多关于这个问题的帖子,但没有任何帮助。这是我的 photo.py 代码:

from flask import Flask, render_template
import datetime
app = Flask(__name__)

app.add_url_rule('/photos/<path:filename>', endpoint='photos', view_func=app.send_static_file)
@app.route('/')
def photo():
now = datetime.datetime.now()
timeString = now.strftime("%Y-%m-%d %H:%M")
templateData = {
'title' : 'Latest Photo',
'time' : timeString
}
return render_template('photo1.html', **templateData)

if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=80)

这是我的 photo1.html 代码:

<!DOCTYPE html>
<head>
<link rel="stylesheet" href='/static/style.css' />
<title>{{title}}</title>
</head>

<body>
<h1>Latest Photo</h1>
<h2>Current date and time: {{time}}</h2>
<p> <img src="{{url_for('photos', filename='image1.jpg')}}"></p>
</body>
</html>

如有任何想法或建议,我们将不胜感激。谢谢!

最佳答案

按照您当前编写的程序的方式,如果您像这样重新组织项目布局,图像将可见:

project
├── app.py
├── static
│   └── image1.jpg
└── templates
   └── photo1.html

您想使用 send_static_file 的事实显示照片表明照片是静态资源。如果是这样,那么最好:

1) 移动 image1.jpgstatic/photos/image1.jpg

2) 像这样更改模板:

<p> <img src="{{url_for('static', filename='photos/image1.jpg')}}"></p>

3) 删除 app.add_url_rule('/photos/<path:filename>', ...)app.py

关于python - Flask网页找不到图片文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42731376/

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