python 实现Flask中返回图片流给前端展示
场景需求:需要在Flask服务器的本地找一张图片返回给前端展示出来。
问题疑点:通常前端的标签只会接受url的形式来展示图片,没试过在返回服务器本地的一张图片给前端。
因此写个记录一下这个看起来有点奇葩的场景(通常个人博客,个人网站没有钱用第三方的服务都会采用存储在服务器本地的方法啦。)
项目目录:
dyy_project
|
|----static(新建flask项目时自动建的,没有任何文件)
|----templates
|-----index.html(前端页面)
|----dyy_project.py(flask项目启动文件)
文件内容:dyy_project.py
#!/usr/bin/envpython
#coding=utf-8
fromflaskimportFlask
fromflaskimportrender_template
app=Flask(__name__)
"""
这是一个展示Flask如何读取服务器本地图片,并返回图片流给前端显示的例子
"""
defreturn_img_stream(img_local_path):
"""
工具函数:
获取本地图片流
:paramimg_local_path:文件单张图片的本地绝对路径
:return:图片流
"""
importbase64
img_stream=''
withopen(img_local_path,'r')asimg_f:
img_stream=img_f.read()
img_stream=base64.b64encode(img_stream)
returnimg_stream
@app.route('/')
defhello_world():
img_path='/home/hogan/Googlelogo.png'
img_stream=return_img_stream(img_path)
returnrender_template('index.html',
img_stream=img_stream)
if__name__=='__main__':
app.run(debug=True,port=8080)
文件内容:index.html
FlaskShowImage 
