簡體   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