首页 > 解决方案 > 我可以在我的 Flask 应用程序中使用文件的绝对路径吗?

问题描述

我正在构建一个烧瓶问卷应用程序,最后一个功能是一个按钮,用于下载包含所有数据的 Excel 电子表格。但是,要下载文件,我需要指定路径。我认为最好是相对路径(因为一旦在 Web 服务器上它不应该再访问我的库)但我收到以下错误:

FileNotFoundError: [WinError 3] The system cannot find the path specified: 'c:\\Users\\me\\Desktop\\webApp\\website\\website\\templates\\downloads\\data.xlsx'

如您所见,名为“网站”的目录在其中两次;我只有一个叫网站,绝对路径是这样的:

C:\\Users\\me\\Desktop\\webApp\\website\\templates\\downloads\\data.xlxs

这在生产中运行良好,但我也可以在部署中使用它吗?如果没有,有什么更好的选择或如何解决双“//网站”问题?提前致谢!

auth.py 相关代码:

@auth.route('/downoad')
@login_required
def download_file():
    from .funcs import download_excel
    path = download_excel()
    return send_file(path, as_attachment=True)

funcs.py 相关代码:

def download_excel():
    file = 'website\\templates\\downloads\\data.xlsx'
from datetime import datetime
    from openpyxl import Workbook, load_workbook
    from . import db
    dataset = AddEnqueteForm.query.all()
    workbook = load_workbook(file)
    sheet = workbook.active

    workbook.save(filename=file)
    return file

我添加了“\website”,因为该应用程序是从网站目录之外的 main.py 运行的

目录结构

标签: python-3.xflaskopenpyxl

解决方案


推荐阅读