python 实现Flask中返回图片流给前端展示

 更新时间:2020年01月09日 10:36:31   作者:DHogan  
今天小编就为大家分享一篇python 实现Flask中返回图片流给前端展示,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

场景需求:需要在Flask服务器的本地找一张图片返回给前端展示出来。

问题疑点:通常前端的<img>标签只会接受url的形式来展示图片,没试过在返回服务器本地的一张图片给前端。

因此写个记录一下这个看起来有点奇葩的场景(通常个人博客,个人网站没有钱用第三方的服务都会采用存储在服务器本地的方法啦。)

项目目录:

dyy_project

|

|----static (新建flask项目时自动建的,没有任何文件)

|----templates

|-----index.html (前端页面)

|----dyy_project.py (flask项目启动文件)

文件内容:dyy_project.py

#!/usr/bin/env python
# coding=utf-8
 
from flask import Flask
from flask import render_template
 
app = Flask(__name__)
 
"""
这是一个展示Flask如何读取服务器本地图片, 并返回图片流给前端显示的例子
"""
 
 
def return_img_stream(img_local_path):
  """
  工具函数:
  获取本地图片流
  :param img_local_path:文件单张图片的本地绝对路径
  :return: 图片流
  """
  import base64
  img_stream = ''
  with open(img_local_path, 'r') as img_f:
    img_stream = img_f.read()
    img_stream = base64.b64encode(img_stream)
  return img_stream
 
 
@app.route('/')
def hello_world():
  img_path = '/home/hogan/Googlelogo.png'
  img_stream = return_img_stream(img_path)
  return render_template('index.html',
              img_stream=img_stream)
 
 
if __name__ == '__main__':
  app.run(debug=True, port=8080)

文件内容:index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Flask Show Image</title>
</head>
<body>
  <img style="width:180px" src="data:;base64,{{ img_stream }}">
</body>
</html>

注意:在img标签中的src一定要按照 data:;base64,{{img_stream}} 的形式添加,否则显示不出图片。

然后启动你的Flask程序,访问http://127.0.0.1:8080 你就可以看到你的图片了。

以上这篇python 实现Flask中返回图片流给前端展示就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python requests模块的使用示例

    python requests模块的使用示例

    这篇文章主要介绍了python requests模块的使用解析,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • Python使用DeepSeek进行联网搜索功能详解

    Python使用DeepSeek进行联网搜索功能详解

    Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用Python和DeepSeek进行联网搜索,感兴趣是可以了解下
    2025-03-03
  • Python PDF转化wolrd代码的写法小结

    Python PDF转化wolrd代码的写法小结

    将PDF文件转换为Word文档的过程通常需要使用一些外部库来实现,因为Python本身并不直接支持这种转换,这篇文章主要介绍了Python PDF转化wolrd代码的写法小结,需要的朋友可以参考下
    2024-06-06
  • python上下文管理器使用场景及异常处理

    python上下文管理器使用场景及异常处理

    这篇文章主要为大家介绍了python上下文管理器使用场景及异常处理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 详解Python中的装饰器、闭包和functools的教程

    详解Python中的装饰器、闭包和functools的教程

    这篇文章主要介绍了详解Python中的装饰器、闭包和functools的教程,作者还给出了相关的Flask框架下的应用实例,需要的朋友可以参考下
    2015-04-04
  • Python中无限元素列表的实现方法

    Python中无限元素列表的实现方法

    这篇文章主要介绍了Python中无限元素列表的实现方法,很实用的功能,需要的朋友可以参考下
    2014-08-08
  • python3 打印输出字典中特定的某个key的方法示例

    python3 打印输出字典中特定的某个key的方法示例

    这篇文章主要介绍了python3 打印输出字典中特定的某个key的方法,涉及Python字典的遍历、判断、输出等相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • 使用flask如何获取post请求参数

    使用flask如何获取post请求参数

    近日在使用flask框架获取前端的请求时获取参数时,遇到了几个问题,所以下面这篇文章主要给大家介绍了关于使用flask如何获取post请求参数的相关资料,需要的朋友可以参考下
    2022-08-08
  • python中的Numpy二维数组遍历与二维数组切片后遍历效率比较

    python中的Numpy二维数组遍历与二维数组切片后遍历效率比较

    这篇文章主要介绍了python中的Numpy二维数组遍历与二维数组切片后遍历效率比较,在python-numpy使用中,可以用双层 for循环对数组元素进行访问,也可以切片成每一行后进行一维数组的遍历,下面小编击来举例介绍吧,需要的朋友可以参考一下
    2022-03-03
  • Python实现爬虫设置代理IP和伪装成浏览器的方法分享

    Python实现爬虫设置代理IP和伪装成浏览器的方法分享

    今天小编就为大家分享一篇Python实现爬虫设置代理IP和伪装成浏览器的方法分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05

最新评论