sim*_*523 8 python image flask
在 Raspberry Pi 上,我编写了一个简单的 Flask 应用程序,用于在网页上显示服务器的当前日期和时间。那部分效果很好。该页面还应该显示图像。那部分不起作用。图像存储在应用程序文件夹下的照片文件夹中:Web_Test/photos。我使用存储在静态文件夹中的 css 文件,效果很好。我使用 url_for 创建图像的 URL:
<p><img src="{{url_for('photos', filename='image1.jpg')}}"></p>
Run Code Online (Sandbox Code Playgroud)
由于 photos 不是 url_for 命令的已知端点,因此我使用:app.add_url_rule('/photos/<path:filename>', view_func=app.send_static_file)将 photos 文件夹添加为端点。每次我从网络浏览器访问网页时,我运行 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)
Run Code Online (Sandbox Code Playgroud)
这是我的 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>
Run Code Online (Sandbox Code Playgroud)
任何想法或建议将不胜感激。谢谢!
按照当前编写程序的方式,如果您像这样重新组织项目布局,则图像将可见:
\n\nproject\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 static\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 image1.jpg\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 templates\n \xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 photo1.html\nRun Code Online (Sandbox Code Playgroud)\n\n您想要用来send_static_file显示照片这一事实表明照片是静态资源。如果是这样的话,那么最好:
1)image1.jpg移至static/photos/image1.jpg
2)像这样更改模板:
\n\n<p> <img src="{{url_for(\'static\', filename=\'photos/image1.jpg\')}}"></p>\nRun Code Online (Sandbox Code Playgroud)\n\n3)app.add_url_rule(\'/photos/<path:filename>\', ...)放下app.py
我刚刚在项目文件夹中创建了一个名为“ static ”的文件夹,并将图像移至其中,我的问题得到了解决。
app.py
static
|----image.jpg
templates
|----index.html
Run Code Online (Sandbox Code Playgroud)
并像这样更改了index.html文件:
<img src="/static/image.jpg">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11603 次 |
| 最近记录: |