はじめに
Djangoを使ってなにか作ろうと思ったとき、どこにファイルを設置したらBESTなんだろうか。
どういったディレクトリ構造だったら製造者は迷わずに作業を行うことができるのだろうか。
そう考えることがありました。
なので、個人的に考えたものを記載してみたいと思います。
※すみません。誰かにレビューしてもらったものではないのでご注意ください。
(内容薄くてすみません 笑)
目次
- デフォルトでのディレクトリ構成
- 検討後のディレクトリ
- 課題
- 結論
1.デフォルトでのディレクトリ構成
以下は、チュートリアルを実行した場合に作られるディレクトリ構成です。
今回は、ECパッケージを作ることを想定としてプロジェクト作成しました。
アプリケーションは、顧客です。
ここで、大切だと思われるのは、アプリケーションを機能単位できるということです。
この機能に対して、GET,POST,PUT,DELETEを行っていく形になるためですね。
$ django-admin startproject ec
$ cd ec
$ python manage.py startapp customer
2.検討後のディレクトリ構成
【追加/変更点】
・設定ディレクトリの名前を変更
settings.py、wsgi.pyなど入っているフォルダ名を「config」に変更
・models.pyをアプリケーション共通として使えるように配置
customer内にmodels.pyが作成されていると思いますが、今後 商品表示、カート、受注などの機能が
追加された場合を想定し、共通的な場所に配置(ecプロジェクト直下)
・utilsフォルダの追加
customerフォルダ配下に、顧客系の共通で利用する処理などあればファイルを作成する
・message定義ファイルの作成
customerフォルダに、メッセージ定義ファイルを作成する
・filter定義ファイルの作成
customerフォルダに、顧客検索時の検索条件定義するfilterファイル
(※django-filterライブラリのインストールが必要)
・serializerファイルの作成
Django REST frameworkでビューとモデルの橋渡しを行う重要なファイル

3.課題
・機能をまたいでの、共通的な処理をどうすべきか
現状機能単位で、messageなどの管理を行っているが、共通的なメッセージはどう管理するか
4.結論
プロジェクトのディレクトリ構成は、プロジェクトの規模、内容、拡張性を
どこまで考えるかなどによって変わってきます。
これだ!という正解はないと思いますが、最善を尽くせるようにしていきたいですね。
※もし皆さんご見解などありましたら、コメントお願い致します。少しでもベスト・プラクティスに
近づけていければと思います。