我需要提供send_from_directory而不是根路径。我要放置文件的文件夹位于根文件夹中:root / excel / newfilename.xlsx我已经检查了类似问题的其他答案,但没有得到为什么代码不起作用的信息。
@app.route("/alldayinfo/toexcel", methods=["GET"])
@flask_login.login_required
def download_excel():
# some code to pick up data and build dataframe ...
df = pd.DataFrame(data=dict_df)
thisd = date.today()
excel_filename = thisd.strftime("%Y_%m_%d_") + str(uuid.uuid4()) + ".xlsx"
df.to_excel(excel_filename, index=False)
# send_from_directory does not work:
p = os.path.join(os.getcwd(), "excel")
# send_from_directory works well
p = os.path.join(os.getcwd())
return send_from_directory(p, excel_filename, as_attachment=True)
答案 0 :(得分:0)
这是我非常基本的错误!我将文件保存到不正确的文件夹中,并且问题与Flask无关,可能是时候在星期五晚上休息了。正确的代码:
@app.route("/alldayinfo/toexcel", methods=["GET"])
@flask_login.login_required
def download_excel():
# some code to pick up data and build dataframe ...
df = pd.DataFrame(data=dict_df)
thisd = date.today()
excel_filename = thisd.strftime("%Y_%m_%d_") + str(uuid.uuid4()) + ".xlsx"
try:
df.to_excel(os.path.join(WORKDIR, os.getcwd(), "toexcel", excel_filename),
index=False)
return send_from_directory(
os.path.join(WORKDIR, os.getcwd(), "toexcel"), excel_filename,
as_attachment=True)
except Exception as ex:
logging.warning("Wasn't able to provide toexcel file: {}".format(ex))
return redirect("401.html", 301)