【发布时间】:2023-01-27 16:16:51
【问题描述】:
我正在创建简单的 flask 应用程序,用户在其中使用 /upload 函数在一个路径中输入 excel 文件并在同一路径上处理 pandas 操作,它必须将处理后的数据帧返回到 /download 路径中的 csv/excel。到目前为止,我使用了这段代码
@application.route('/chart1', methods=['GET', 'POST'])
def upload():
if request.method == 'POST':
global dfw
df = pd.read_csv(request.files.get('file'), skiprows=13, sep=";", header=None)
df.fillna(0, inplace=True)
df.replace(['0x', ''], ['', ''], regex=True, inplace=True)
df.columns = ["Time", "Type", "ID", "DL", "D0", "D1", "D2", "D3", "D4", "D5", "D6"]
session["df"] = df.to_csv(index=False, header=True, sep=";")
return render_template('upload.html')
@application.route("/download", methods=["POST"])
def download():
csv = session["df"] if "df" in session else ""
buf_str = io.StringIO(csv)
buf_byt = io.BytesIO(buf_str.read().encode("utf-8"))
return send_file(buf_byt,
mimetype="text/csv",
as_attachment=True,
download_name="data.csv")
上面的代码返回空的 data.csv 文件如何更正它
【问题讨论】: