0

非常に単純なファイルブラウザを作成したい場合は、たとえば/some/folderサーバー上で、flaskアプリを実行して要求を処理し、/here/さらに/some/folder/here深く掘り下げますか?フラスコにはそれがある@app.route(('/')ので、各リクエストは関数にマップされますが、ここでは1つの関数が必要です。たとえば、すべてのリクエストを処理するためにブラウズし、たとえばのリクエストをブロックします/../../

フラスコはこれにあまり適していませんか?私は何か他のものを探すべきですか?

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.separatorプラットフォームに依存しないように、パスをマッサージする必要があるかもしれませんos.path.join

また、返すファイルのmimetypeとを判別する必要があります。これは、モジュールを使用して実行できますmimetypes

また、ファイルを読み取って返すことなく、ファイルを直接返すメカニズムについては、このリンクを参照してください。Flaskを使用するPythonで、ダウンロード用のオブジェクトを書き出すにはどうすればよいですか?

于 2012-09-17T09:56:20.183 に答える