繁体   English   中英

如何允许用户访问覆盖服务器 Python Flask 上的文件?

[英]How to allow users access to overwrite files on server Python Flask?

我正在制作一个简单的 Flask 应用程序,它根据用户的不同输入显示不同的图表。 该应用程序使用 Seaborn 生成图形,然后将其保存在服务器上的目录中,然后 Flask 应用程序将显示该图像文件。

如果我要使用本地主机连接到服务器,当我尝试不同的输入时没有问题,这会改变图形并覆盖图像文件。 但是,如果我要使用 Web 地址从另一台计算机连接到服务器,它将显示相同的图形,因为服务器不允许覆盖图像文件。

我使用 Seaborn 的这段代码来保存图形图像文件

<seaborn_graph_object>.figure.savefig(<directory>)

在提供这样的一次性情节时,我倾向于不写文件。

例如,当您制作情节时,请改为执行以下操作:

import BytesIO
import base64
import maptlotlib.pyplot as plt

# Make your plot like you normally do.
plt.plot([1, 2, 3], [4, 5, 6])  # Simple example.

# Put plot in memory.
handle = BytesIO()
plt.savefig(handle, format='png')
plt.close()

# Encode.
handle.seek(0)
figdata_png = base64.b64encode(handle.getvalue()).decode('utf8')

然后在应用程序中,您将执行以下操作:

from flask import render_template

render_template('index.html', plot=plot)

index.html中你会有这样的东西:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM