Python Flask-如果文件扩展名是xls,则不返回输出

时间:2018-10-30 08:49:36

标签: python python-3.x flask

我有一个小的Flask项目,该项目从用户那里获取一些输入,并根据输入将数据从数据库中提取回用户,并返回一个输出文件。

如果文件格式为csv,则代码可以正常工作。但是,当文件格式为xls时,我看到正在生成输出,但是flask应用程序未返回文件。

编辑:

下面给出的是 views.py

的代码
@app.route('/data', methods=['GET','POST'])
def data():
    form = DataForm()
    if form.validate_on_submit():
        name = form.name.data
        start_date = form.start_date_field.data
        end_date = form.end_date_field.data
        file_extension = form.file_extension_field.data

        rep_func(name=name, start_date=start_date, end_date=end_date, exten=file_extension)

        current_directory = path.abspath(path.join(__file__, ".."))
        base = os.path.join(current_directory, 'files')

        if file_extension == 'csv':
            data = pd.read_csv(base + f'/final_output/{name}_{end_date}.{file_extension}', sep=r',(?!\s|\Z)', engine='python') 
            resp = make_response(data.to_csv(index=False))
            resp.headers["Content-Disposition"] = f'attachment; filename={name}_{end_date}.{file_extension}'
            resp.headers["Content-Type"] = "text/csv"
        elif file_extension == 'xls':
            data = pd.read_excel(base + f'/final_output/{name}_{end_date}.{file_extension}')
            resp = make_response(data.to_excel(index=False))
            resp.headers["Content-Disposition"] = f'attachment; filename={name}_{end_date}.{file_extension}'
            resp.headers["Content-Type"] = "application/vnd.ms-excel"
            return resp

    return render_template('file.html', form=form)

任何人都可以建议我在哪里出错。谢谢

0 个答案:

没有答案