Flaskを使ってみる

まずはwebアプリフレームワークであるFlaskをインストール

$pip install Flask

2.0.1 が入りました.

次にjinja2もインストールします。

HTMLにpythonを埋め込むテンプレートエンジンというものらしい。

$pip install jinja2

3.0.1 が入っていました。入れた記憶がないが、Flaskをインストールすると勝手にはいるのかな?

構成は

flaskr>templates>index.html, xxx.html

flaskr>__init__.py, main.py, yyy.py

の2系統ある感じする。templatesは決まりなのでフォルダ名を変えてはいけない。

フォルダ構成を作ったらindex.htmlを書いていきましょう。vs code を使っているなら ! を打つだけで、下のコードが自動的に生成されて便利です。langはenからjaに変えておきます。

ボディには下記のようなのを入れておきました。

次、__initi__.pyです。

意味わからないけど、下記のような呪文を書きます。

インポートするのはflaskモジュールではなくて自分で作ったflaskrです。

appはFlaskアプリケーションオブジェクト というらしいです。

つぎに、main.pyです。今作ったFlaskアプリケーションオブジェクトをインポートします。

トップページ(‘/’)にアクセスしたときに実行する関数を定義します。

トップページにアクセスしたときに、render_templateメソドを使って、index.htmlが表示するようにしましょう。

最後に__init__.pyの方にこのmain.pyを呼び出せるようにしておく。

さて実行しよう

Flaskアプリの起動方法
CMDの場合
flaskrが入っているフォルダへcd で移動する
set FLASK_APP=flaskr
set FLASK_ENV=development
ここまではできた
flask run でエラー
powershellの場合
flaskrが入っているフォルダへcd で移動する
env:FLASK_APP=”flaskr” ですでにエラー
どうしようもない。ダレカタスケテ
で、結局どうしたかというと、flask runができないので、直接python main.py して動かせるようにした。
そうすると、flaskrフォルダの上位へ移動する必要なくなる。
そもそも__init__.pyのimport flaskr.mainも意味わからんし、やめた。
もともと__init__.pyに入れていた app=Flask(__name__)もmain.pyに移動した。
で、最後にapp.run()を入れると、python main.py で実行できたから、ひとまずは良しとしよう。