flaskによる簡易アプリの作成


はじめに

Flaskを使用して1からアプリケーションを作り、必要な技術を学んでいただけるようにまとめています。

Flaskとは

Flaskは2010年に開発されたPythonのマイクロフレームワークです。
必要最小限のライブラリに依存し、特定のツールやライブラリを必要としないため、「マイクロフレームワーク」と呼ばれています。

以下のような特徴があります。
  • マイクロフレームワークなので、非常に軽い
    • 必要最低限の昨日しか持っていないので、余計な機能が動作を重くするといったことがありません
  • 拡張性が高い
    • 必要最低限のコア機能に、拡張機能を組み合わせて作成していくのがFlaskの設計思想です。
    • ORM、キャッシュ、認証は後から機能を追加する必要があります。
  • カスタマイズ性が高い
    • DBが必ずしもセットされず、NoSQLを利用したいといったケースの場合Flaskではかなり細かくカスタマイズできます。
  • シングルファイルフレームワーク
    • Flaskを利用する場合、Flaskをインストールして、1つのファイルに数行のコードを記述するだけでターミナルで起動できます。

シングルファイルフレームワーク

Flaskは「シングルファイルフレームワーク」であるというモチベーションで作られました。
最小限の昨日であることからどのようなアプリケーションにもカスタマイズできるという素晴らしさも兼ね備えています。

開発環境

  • mac(catalina)
  • 言語: Python 3系
  • フレームワーク: Flask
  • DB: SQLite
  • ORM: SQLAlchemy

仮想環境で行うことをオススメします。

成果物

ディレクトリ構成

app/
  ├ src/
     ├ templates
     ├ static
  ├ manage.py
  ├ requirements.txt
  ├ venv
  ├ server.py

flaskにおける簡単アプリの作成

initファイルの作成

src/__init__.py
from flask import Flask

app = Flask(__name__)

import src.views

viewsファイルの作成

src/views.py
from src import app

@app.route('/')
def index():
    return "Hello World"

起動ファイルの作成

server.py
import sys
sys.dont_write_bytecode = True

from src import app

if __name__ == '__main__':
    host = '127.0.0.1'
    port = 5000
    app.run(host=host, port=port, debug=True)

このファイルは、http://127.0.0.1:5000/ にリクエストが会ったときの処理を記載しています。
* 'if name == 'main':'はこのファイルを直接実行されたときに実行される処理を記述しています。
* 'debug=True'はデバッグモードでアプリケーションを起動し、これで実行することにより、アプリの実行時にコンソール上に様々な情報が表示される。

実行

python
$ python3 serve.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)