Flaskを使ってみる

ディレクトリの公開


Flaskを使うと簡単にサーバ側のディレクトリを公開することができます。
こちらにディ レクトリを公開するサンプルコードが公開されています。
あっという間にこのようなアプリを作ることができます。


インストールは以下の通りです。
$ git clone https://github.com/sergds/flask-directory-list
$ cd flask-directory-list/

$ python3 -m pip install -r requirements.txt
Installing collected packages: python-magic
Successfully installed python-magic-0.4.10

インストールされるpyton-magic(ファイルタイプ識別ライブラリ)が古いので一度削除します。

$ python3 -m pip uninstall python-magic
Found existing installation: python-magic 0.4.10
Uninstalling python-magic-0.4.10:
  Would remove:
    /home/nop/.pyenv/versions/3.7.5/lib/python3.7/site-packages/magic.py
    /home/nop/.pyenv/versions/3.7.5/lib/python3.7/site-packages/python_magic-0.4.10.dist-info/*
Proceed (y/n)? y
  Successfully uninstalled python-magic-0.4.10


最新版をインストールしなおします。

$ python3 -m pip install python-magic
Collecting python-magic
  Downloading python_magic-0.4.18-py2.py3-none-any.whl (8.6 kB)
Installing collected packages: python-magic
Successfully installed python-magic-0.4.18

$ vi app.py

以下の部分を変更します。

if __name__ == "__main__":
    #app.run(host="0.0.0.0", debug=True)
    app.run(host="0.0.0.0", port=8080, debug=True)

$ python ./app.py

BootstrapのCSSとFont Awesomeのアイコンを使っています。
テンプレートとのやり取りでは、ファイル名にquote_plusの加工をして渡しています。
URLパス変数では階層構造のパス名を渡すことができませんが、quote_plusすることで

/home/nop/flask/flask-directory-list/requirements.txt

%2Fhome%2Fnop%2Fflask%2Fflask-directory-list%2Frequirements.txt

となり、URLパス変数で上記文字列を取り込むことが出来るようになります。

URLパラメータにすればこのような加工は不要です。

続く...