Skip to content

02 ディレクトリ構成

Yoshiya edited this page Apr 1, 2016 · 4 revisions

flask でのディレクトリ構成は完全に自由です。 Ruby on Rails の MVC を真似て構成しても良いし、 Django の MTV 形式を真似てもいいでしょう。 ここでは、 MTV での方式を紹介します。

    application/
        |- server.py              # サーバの起動スクリプト
        |- tasks.py               # バッチのインターフェースやタスクランナーを記述
        |- tools/                 # バッチや、CLIツールをココに
        |- config/                # 設定ファイル
            |- __init__.py
            |- development.py
            |- production.py
        |- app/
            |- __init__.py
            |- models/
            |- views/
            |- statics/            # 静的ファイル
                |- css/
                |- js/
                |- img/
            |- templates/
        |- migrations/             # flask-alembic を用いる場合の migration ファイル
        |- tests/                  # noseテスト モデルとビューとモックデータ
            |- models/
            |- views/
            |- mocks/
        |- venv/                   # pyvenv 環境 gitignore しましょう
            |- lib/
            |- bin/
            |- include/
            |- man/

statics/ のディレクトリはクライアントサイドのフレームワークに合わせて修正するなどをするといいでしょう。 その際、 SPA であれば、 templates に一枚だけの HTML ページをレンダリングし、そこで使う js や css を宣言し、後はクライアントサイドのフレームワークで組んでいきましょう。

WEB-API だけを公開する場合、 views の部分で json だけを返す API として作成すると、ネイティブアプリ、 web アプリ両方に対応出来るようにするといいでしょう。