[英]how do I set up html with text and images for flask app?
我有一个 flask 应用程序,它看起来像:
@app.route("/predict", methods=["GET","POST"])
def predict():
if request.method == "POST":
if request.files:
raw_data = request.files['image'].read()
finalNumpyArray=np.array(json.loads(raw_data), dtype = 'uint8')
processed_image = preprocess_image(finalNumpyArray)
processed_image1 = preprocess_image1(finalNumpyArray)
prediction = model.predict(processed_image).tolist()
f1 = plt.imshow(processed_image1, interpolation='none')
f1.show()
response = {
'prediction': {
'Center': prediction[0][0],
'Donut': prediction[0][1],
'Edge-Loc': prediction[0][2],
'Edge-Ring': prediction[0][3],
'Loc': prediction[0][4],
'Random': prediction[0][5],
'Scratch': prediction[0][6],
'None': prediction[0][7],
}
}
return jsonify(response)
return render_template("predict.html")
第一个预测页面显示“predict.html”页面,您可以在其中上传图像以获取由我在应用程序中加载的 model 预测的图像。 上传后,第二个页面出现,带有 jsonify(response)。
我想将 jsonify(response) 更改为 html,它对“response”变量具有很好的读数,并且还显示了 f1 图 plt.imshow(...)。 该图看起来像这样。
您可以使用render_template
来渲染Jinja2模板。
在此处查看 Flask 文档。
本质上,您将使用以下内容替换您的return jsonify(response)
:
return render_template('your_template.html', prediction=response['prediction'])
现在,您的 Jinja2 模板将在prediction
模板变量中提供预测字典。
对于f1
图像,您需要先以某种方式将其保存到磁盘(例如,使用plt.imsave()
,请参见此处),然后将文件的路径也传递给render_template
调用,以便您可以在<img />
模板中的标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.