PythonのFlaskでは利用する固定のファイル「テンプレート」や「スタイルシート」などは決まった名前のフォルダーに配置しないと参照できません。
(「templates」フォルダーや「static」フォルダー)
基本はそれで良いのでしょうけど、ひとまとめにしたい場合もあります。
今回はFlaskデフォルトで参照するパスを変更する方法を解説します。
Flaskがデフォルトで参照するパスを変更する
PythonのFlaskは利用する「テンプレートファイル」は「templates」、スタイルシートやJavascriptのファイルなどは「static」フォルダーに配置されていると仮定して動作しています。
<<通常のフォルダー構成>>
root |--static | |--common.css | |--common.js | |--templates | |--index.html | |--main.py
そのフォルダーは実は任意の場所に変更できます。
<<変更後のフォルダー構成>>
root |--parts | |--static | | |--css | | | |--common.css | | |--js | | |--common.js | | | |--templates | | |--index.html | |--main.py
サンプルとして「parts」フォルダー配下にテンプレートとスタイルシート、Javascriptのソースファイルを配置してみます。
static_folderとtemplate_folder
Flaskが参照するパスを変更するにはFlaskの生成時に「static_folder」、「template_folder」を指定して行います。
実際には以下のようなソースになります。
from flask import Flask, render_template app = Flask( __name__, static_folder="parts/static", template_folder="parts/templates") @app.route( "/index" ) def index(): return render_template( "index.html" ) if __name__ == "__main__": app.run()
まとめ
Flaskが参照するパスを変更するには引数で「static_folder」、「template_folder」を指定してFlaskを生成することで可能になります。
以上、PythonのFlaskがデフォルトで参照するパスを変更する方法でした。