0

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

烧瓶不适合这个吗?我应该寻找其他东西吗?

4

1 回答 1

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 响应。

例如

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

您可能需要按摩路径,使其独立于平台,使用os.path.separatoros.path.join

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

此外,请参阅此链接以了解直接返回文件的机制,而无需读取并返回它。在使用 Flask 的 python 中,如何写出一个对象以供下载?

于 2012-09-17T09:56:20.183 回答