我开发了Flask App。该项目包括位于项目文件(ozet.xlsx)中的excel文件init。我的目标是用户可以在单击按钮后从网页下载文件(ozet.xlsx)。我的文件夹结构是;
ㄴ root
ㄴ BluePrints
ㄴ ExportReport
ㄴ views.py
ㄴ Ozet.xlsx
我尝试了此功能,但是没有用。用户如何将此xlsx文件下载到用户计算机(如桌面位置)。 saveexcel()函数返回响应。用户如何在他/她的计算机中下载此excel文件?
from deneme import app, db
from blueprints.hsa_ay.models import HSA_AY
from flask import Blueprint, render_template, send_from_directory, send_file
from blueprints.export_report.forms import ExcelForm
from flask import request
import os
import os
import fnmatch
import shutil
export_report_blueprint = Blueprint('export-report', __name__)
@export_report_blueprint.route('/', methods=['GET', 'POST'])
def send_excel():
form = ExcelForm()
if request.method == 'POST':
if (form.validate_on_submit()):
year = form.year.data
month = form.month.data
a = save_excel()
return render_template('export_report/index.html', form=form)
else:
return render_template('export_report/index.html', form=form)
def save_excel():
return send_file(os.path.join(r'C:\Users\is97339\PycharmProjects\OlayKaydıWeb\blueprints\export_report', 'ozet.xlsx'), as_attachment=True)
答案 0 :(得分:0)
尝试将您的save_excel函数更改为此:
def save_excel():
return send_file(os.path.join(app.config['DOWNLOAD_DIR'], 'filename'), as_attachment=True)
别忘了在应用程序配置中设置下载文件夹。
我还注意到您调用了save_file()函数。我想你的意思是save_excel()在这里?