烧瓶奇怪的路由问题

时间:2014-01-29 22:30:05

标签: python flask

所以我试图在Flask中测试一些用户上传的文件。对于图像,我只是简单地用缩短的UUID重命名它们并将它们放在一个文件夹中,但是对于其他文件类型我想保留原始文件名,所以我设计了将每个文件保存在一个以UUID命名的子文件夹中的复杂方法。一切正常,图像和文件都上传,并且都在他们应该进入的目录中。只是为了测试我为下载页面制作了一个模板,只显示文件名(计划稍后实现下载按钮)。但是,当我为上传的文件插入生成的URL时,我得到一个404,并且url应该被绑定的函数甚至看起来都没有执行(我让它在控制台中打印文件名,它甚至没有打印),并在控制台中显示URL:“GET / xVgePgj2Y HTTP / 1.1”404 - 我上传文件和制作网址的代码:

        else:
            new_folder_name = shortuuid.uuid()[:9] 
            os.mkdir(os.path.join(app.config['FILE_FOLDER'], new_folder_name))
            file.save(os.path.join(os.path.join(app.config['FILE_FOLDER'], new_folder_name), filename))
            new_folder_path = os.path.join(app.config['FILE_FOLDER'], new_folder_name)
            return url_for('uploaded_file', new_folder_name=new_folder_name)

我提供文件的代码:

@app.route('/<new_folder_name>', methods=['GET'])
def uploaded_file(new_folder_name):
    filename = subfolder_fetch(new_folder_name)
    return render_template("download.html", filename=filename)

最后我的代码从子目录中获取文件名(在服务函数中调用 - 没有将文件名传递给url_for函数,因为这会使它变得丑陋和复杂):

def subfolder_fetch(new_folder_name): 
    stuff = os.listdir(os.path.join(app.config['FILE_FOLDER'], new_folder_name))
    for name in folder: 
        print (name)
        return name

我很困惑甚至发生了什么以及为什么我的uploaded_file函数甚至没有被调用。 提前致谢。

0 个答案:

没有答案