如何创建要在Flask上显示的动态图?

我希望根据flask应用程序上的用户输入来创建动态图。但是我收到以下错误:预期的字符串参数,得到了“字节”

如果我使用io.BytesIO(),则不会收到此错误,但不会在test.html上获取图

from flask import Flask

from flask import render_template

import matplotlib.pyplot as plt

import io

import base64

app = Flask(__name__)

@app.route('/plot')

def build_plot():

img = io.StringIO()

y = [1,2,3,4,5]

x = [0,2,1,3,4]

plt.plot(x,y)

plt.savefig(img, format='png')

img.seek(0)

plot_url = base64.b64encode(img.getvalue())

return render_template('test.html', plot_url=plot_url)

if __name__ == '__main__':

app.debug = True

app.run()

Test.html

<!DOCTYPE html>

<html>

<title> Plot</title>

<body>

<img src="data:image/png;base64, {{ plot_url }}">

</body>

</html>

回答:

使用BytesIO及以后decode()

工作实例

from flask import Flask

#from flask import render_template

import matplotlib.pyplot as plt

import io

import base64

app = Flask(__name__)

@app.route('/plot')

def build_plot():

img = io.BytesIO()

y = [1,2,3,4,5]

x = [0,2,1,3,4]

plt.plot(x,y)

plt.savefig(img, format='png')

img.seek(0)

plot_url = base64.b64encode(img.getvalue()).decode()

return '<img src="data:image/png;base64,{}">'.format(plot_url)

if __name__ == '__main__':

app.debug = True

app.run()

以上是 如何创建要在Flask上显示的动态图? 的全部内容, 来源链接: utcz.com/qa/428192.html

回到顶部