你如何使用python创建一个文件浏览器,例如使用flask?因为它的url-mapper,文件/文件夹到它的功能?

时间:2012-09-17 09:14:25

标签: python flask

如果你想创建一个非常简单的文件浏览器,让我们在服务器上说/some/folder,让烧瓶应用程序运行并处理/here/ /some/folder/here的任何请求然后挖掘更深的?因为flask具有@app.route(('/')所以每个请求都映射到一个函数,但是在这里你需要一个函数,例如浏览来处理所有请求,并阻止/../../的请求。

烧瓶不适合这个吗?我应该寻找别的吗?

1 个答案:

答案 0 :(得分:2)

这是非常可行的。有关示例,请参阅http://flask.pocoo.org/snippets/57/

@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def catch_all(path):
    return 'You want path: %s' % path

您应该将/后面的所有内容都作为文件夹的路径处理。然后,您可以使用open打开该文件名,并将其写为Flask响应。

E.g。

 my_path = os.path.join(my_folder, path)
 with open(my_path) as the_file:
     # do stuff

您可能需要使用os.path.separatoros.path.join等按摩路径,使其与平台无关。

此外,您需要确定要返回的文件的mimetype。这可以使用模块mimetypes完成。

另外,请参阅此链接以获取直接返回文件的机制,而无需阅读并返回文件。 In python using Flask, how can I write out an object for download?