主な特徴
- Python用のマイクロウェブフレームワーク。
- FlaskはWebフレームワークで軽量で機能がそこまで備わっていないことが特徴。
- Djangoほどたくさんの機能が備わってない。余分な機能がない。
DjangoはMVC、FlaskはMVT
Django等のMVCモデルについては以下
Model:ビジネスロジックを記述。データベースアクセスを伴うことが多い
View:画面描画を担当。ユーザからの入力も受け付ける
Controller:URLを振り分ける司令塔の役割。ビューからのデータをモデルに渡したり、その逆も行う
一方で、FlaskはMVCではなく、MVTという形式を取っている。
これは、Model、View、Templateの頭文字。 MVCとMVTは、内容はほぼ同じだが、それぞれの役割が異なる。
Model : MVCモデルのModelと同じ役割
View : MVCモデルのControllerと同じ役割
Template : MVCモデルのViewと同じ役割
仮想環境構築~Flaskインストール手順
環境
- Python3.6
- Flask1.1.1
- CentOS7
1.作成したプロジェクトのディレクトリへ移動。今回はFlaskAppというプロジェクト名。
cd FlaskApp
2.venvで仮想環境を作成する(最後のvenvはファイル名なのでなんでもよい)
python3 -m venv venv
3.仮想環境を実行する
source venv\bin\activate
4.Flaskをインストールする
pip install Flask
5.Flaskがちゃんとインストールされたか確認
pip freeze
以下のように感じで表示されてたらとりあえずOK
Click==7.0
Flask==1.1.1
itsdangerous==1.1.0
Jinja2==2.10.3
MarkupSafe==1.1.1
Werkzeug==0.16.0
簡単なアプリケーション作成してみる
以下のソースを作成する。ファイル名をviews.pyとする。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World'
if __name__ == '__main__':
app.debug = True
# Linux環境下でアプリを起動する場合、以下のように明示的にIPとポート番号を指定しておいた方が良い。port番号の5100は適当。
app.run(debug=True, host='0.0.0.0', port=5100)
【ソースコード11行目補足】
- hostキーワード引数: サーバのIPアドレスを指定する。
- portキーワード引数: ポート番号を指定する。指定しなければ、デフォルトではポート番号は5000。
- debugキーワード引数: デバックモードを有効にするかどうかを指定する。指定しなければ、デフォルトでは無効。
以下のコードでアプリケーションを実行する
python views.py
ブラウザ上にHello Wordが表示されればOK
※Windows上でVirtualBoxを使用してLinux環境化で開発を行っている場合、IPに注意する必要あり。