2016/09/30更新

[Python] Flaskで静的ファイルのディレクトリを追加する

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
今日はFlaskアプリケーションの実装Tipsで、静的ファイル用フォルダを増やす方法をブログに書きたいと思います。

画像

Flaskで静的ファイルのフォルダを増やす

(※Flaskの入門は「軽量WebフレームワークのFlaskに入門(準備、起動、HTML、静的ファイル、GET、POSTなど)」をご参照ください。)


FlaskでWebアプリケーションを以下のように実装した場合、
from flask import Flask

app = Flask(__name__)

if __name__ == "__main__":
    app.run()
デフォルトで/staticというパス以下は、staticディレクトリ以下に置いた静的コンテンツを自動的に返却してくれます。そして作成するアプリケーションによっては、/static以外にも静的ファイル用のパスを作りたいということがあり、今日はそれを実現する方法です。

Webで調べた感じだといろいろとやり方がありますが、Blueprint(詳細はFlaskアプリケーションでBlueprintを用いてコントローラーを分割するを参照)を用いて実装するのが良さそうでした。

具体的には、静的ファイル用のBlueprintを以下のように定義します。
# dist.py
# /distを静的フォルダとして定義する
from flask import Blueprint
app = Blueprint("dist", __name__,
    static_url_path='/dist', static_folder='./dist'
)
そして上記のBlueprintをメインの処理で読み込みます。
from flask import Flask

app = Flask(__name__)

# Blueprintを読み込む
import dist
app.register_blueprint(dist.app)

if __name__ == "__main__":
    app.run(debug=True)
これでサーバー起動すれば、/distも静的ファイル用のディレクトリとなります。Blueprintはコントローラーを分割するのがメインの使い方ですが、こんな使い方もいいなーと思い今日こちらで紹介いたしました(実際に案件でも使いました)。



参考資料

今回の実装をするのに以下を参照しました。ありがとうございます。

python - More than one static path in local Flask instance - Stack Overflow



最後に

今日はFlaskのTipsでした。Flaskは非常に便利に使えますが、本気で開発に使うならこのようなTipsをいくつか知っている必要があるので、ちょっとずつ覚えていきたいところです(ブログにも書いていきたいと思います)。

最後になりますが本ブログでは、Python・フロントエンド・開発関連・Swift・Linux・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。