【问题标题】:Flask shows TypeError: send_from_directory() missing 1 required positional argument: 'path'Flask 显示 TypeError: send_from_directory() missing 1 required positional argument: 'path'
【发布时间】:2022-01-28 18:53:49
【问题描述】:

当我在 Azure 上部署我的 Flask 应用程序时,视图会出现 TypeError: send_from_directory() missing 1 required positional argument: 'path'。当我在本地运行时不会发生这种情况。

from flask import send_from_directory

@app.route('/download/<path:filename>', methods=['GET', 'POST'])
def download(filename):
    uploads = os.path.join(app.root_path, app.config['UPLOAD_FOLDER'])
    return send_from_directory(directory=uploads, filename=filename)

【问题讨论】:

    标签: python flask


    【解决方案1】:

    将最后一行更改为return send_from_directory(uploads, filename)

    请参阅有关 send_from_directory 的 Flask 文档。底部的更改日志显示“在 2.0 版中已更改:path 替换了 filename 参数。”

    如果您仍想使用命名参数,请将filename= 更改为path=send_from_directory(directory=uploads, path=filename)

    【讨论】:

      【解决方案2】:

      在我的情况下,我需要证书,它保存在 static/pdf/certficates 文件夹

      @app.route('/download/<filename>', methods = ["GET", "POST"])
      def download(filename):
         uploads = os.path.join(current_app.root_path, "static/pdf/folder_name")
         return send_from_directory(directory=uploads,path=filename,as_attachment=True)
      

      【讨论】:

        【解决方案3】:
        return send_from_directory(directory=uploads, filename=filename)
        

        改成

        return send_from_directory(directory=uploads, path=filename, as_attachment=True)
        

        【讨论】:

        • 虽然这段代码 sn-p 可以解决问题,但它没有解释为什么或如何回答这个问题。请包括对您的代码的解释,因为这确实有助于提高您的帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
        猜你喜欢
        • 1970-01-01
        • 2018-05-19
        • 2022-01-06
        • 2016-05-09
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多