NameError:未定义全局名称"send_from_directory"

Xar*_*Xar 2 python flask

我正在使用Flask并尝试提供文件供用户下载.

我的代码看起来像这样:

@app.route('/downloads/<string:yt_id>')
def download_file(yt_id):

    def hooks(data):
        if data['status'] == 'finished':
            filename = data['filename']

    ydl_opts = {
        'format': 'bestaudio/best',
        'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            'preferredquality': '192',
        }],
        'progress_hooks': [hooks],
    }
    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        ydl.download(['http://www.youtube.com/watch?v='+yt_id])


    return send_from_directory(".",
                               filename,
                               as_attachment=True)
Run Code Online (Sandbox Code Playgroud)

我想上面代码中唯一相关的部分是这样的:

    return send_from_directory(".",
                               filename,
                               as_attachment=True)
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误消息:

NameError: global name 'send_from_directory' is not defined
Run Code Online (Sandbox Code Playgroud)

我已经看过几个人们如何使用的例子,send_from_directory我并没有看到我正在做的事情有多大的不同.所以任何帮助将不胜感激.

Raj*_*mon 17

你必须从烧瓶中进口......它应该......

from flask import send_from_directory
Run Code Online (Sandbox Code Playgroud)