前提
GAEのサンプルでつかわれているのがFlaskだったので、このまま使う。
flask の render_template を用いて、htmlファイルを表示する。
- htmlファイルを /templates というフォルダをつくって、そこに置く。
- render_templates([filename])
from flask import Flask, render_template
app = Flask(__name__)
# 以下の例では、/(root) のリクエストが来る
@app.route('/')
def hello():
return render_template("index.html")
静的ファイルの表示
プロジェクト内にフォルダを作ってhtmlファイルを置いても、そのままのURLでは表示できない。(※正しくは、/static フォルダを作ってそこにファイルを置けば表示できる。)
表示するには以下の方法がある。
- Flaskで、静的ファイルを置く場所を決める
- app.yamlで、リクエストURLに対して返すファイルを指定する
Flaskで、静的ファイルを置く場所を決める
from flask import Flask, render_template
app = Flask(__name__, static="www")
staticでフォルダを指定する。この場合は /www のフォルダに置いたファイルは、リクエストに対してそのまま表示される。すなわち、wwwフォルダ内に index.html ファイルを置いておけば、
をそのまま表示できる。
staticのデフォルト値として"static"が指定されている。
app.yaml内に記述する
app.yamlファイルに
handlers:
- url: /(.*)
static_files: www/\1
upload: www/(.*)}
と書くことによって、リクエストに対して、www内のファイルを対応して表示させることができる。
しかしながら、ローカル側でチェックする際にapp.yamlを使うには、
Python2.*系を使う必要があり、(dev_appserver.pyを動かすのにPython2を指定される)毎回デプロイをして確認するのはかなり手間。
最終更新:2020年01月03日 18:31