7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Flask開発 導入編

Last updated at Posted at 2019-11-06

主な特徴

  • 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に注意する必要あり。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?