python 實(shí)現(xiàn)Flask中返回圖片流給前端展示
場(chǎng)景需求:需要在Flask服務(wù)器的本地找一張圖片返回給前端展示出來(lái)。
問(wèn)題疑點(diǎn):通常前端的<img>標(biāo)簽只會(huì)接受url的形式來(lái)展示圖片,沒(méi)試過(guò)在返回服務(wù)器本地的一張圖片給前端。
因此寫(xiě)個(gè)記錄一下這個(gè)看起來(lái)有點(diǎn)奇葩的場(chǎng)景(通常個(gè)人博客,個(gè)人網(wǎng)站沒(méi)有錢(qián)用第三方的服務(wù)都會(huì)采用存儲(chǔ)在服務(wù)器本地的方法啦。)
項(xiàng)目目錄:
dyy_project
|
|----static (新建flask項(xiàng)目時(shí)自動(dòng)建的,沒(méi)有任何文件)
|----templates
|-----index.html (前端頁(yè)面)
|----dyy_project.py (flask項(xiàng)目啟動(dòng)文件)
文件內(nèi)容:dyy_project.py
#!/usr/bin/env python
# coding=utf-8
from flask import Flask
from flask import render_template
app = Flask(__name__)
"""
這是一個(gè)展示Flask如何讀取服務(wù)器本地圖片, 并返回圖片流給前端顯示的例子
"""
def return_img_stream(img_local_path):
"""
工具函數(shù):
獲取本地圖片流
:param img_local_path:文件單張圖片的本地絕對(duì)路徑
: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)
文件內(nèi)容: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標(biāo)簽中的src一定要按照 data:;base64,{{img_stream}} 的形式添加,否則顯示不出圖片。
然后啟動(dòng)你的Flask程序,訪問(wèn)http://127.0.0.1:8080 你就可以看到你的圖片了。
以上這篇python 實(shí)現(xiàn)Flask中返回圖片流給前端展示就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python機(jī)器學(xué)習(xí)GCN圖卷積神經(jīng)網(wǎng)絡(luò)原理解析
這篇文章主要為大家介紹了GCN圖卷積神經(jīng)網(wǎng)絡(luò)原理及代碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Python創(chuàng)建7種不同的文件格式的方法總結(jié)
今天的這篇文章呢,小編來(lái)介紹一下如何通過(guò)Python來(lái)創(chuàng)建各種形式的文件,這里包括了:文本文件、CSV文件、Excel文件、壓縮文件、XML文件、JSON文件和PDF文件,需要的可以參考一下2023-01-01
python pytest進(jìn)階之xunit fixture詳解
這篇文章主要介紹了python pytest進(jìn)階之xunit fixture詳解,了解unittest的同學(xué)應(yīng)該知道我們?cè)诔跏蓟h(huán)境和銷(xiāo)毀工作時(shí),unittest使用的是setUp,tearDown方法,那么在pytest框架中同樣存在類(lèi)似的方法,今天我們就來(lái)具體說(shuō)明,需要的朋友可以參考下2019-06-06
Python接口測(cè)試環(huán)境搭建過(guò)程詳解
這篇文章主要介紹了Python接口測(cè)試環(huán)境搭建過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python利用Turtle庫(kù)繪制一顆櫻花樹(shù)
后唐李煜曾說(shuō)道,櫻花落盡春將困,秋千架下歸時(shí)。漏暗斜月遲遲,花在枝。櫻花落盡的時(shí)候春天也將過(guò)去了,秋千架下歸去時(shí)。天上的斜月姍姍來(lái)遲,花還在枝頭。本文將用Python+Turtle繪制一顆櫻花樹(shù),感興趣的可以嘗試一下2022-04-04

