2
2

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 5 years have passed since last update.

Django REST frameworkのディレクトリ構造を考えてみる

Last updated at Posted at 2019-02-23

はじめに

Djangoを使ってなにか作ろうと思ったとき、どこにファイルを設置したらBESTなんだろうか。
どういったディレクトリ構造だったら製造者は迷わずに作業を行うことができるのだろうか。
そう考えることがありました。
なので、個人的に考えたものを記載してみたいと思います。
※すみません。誰かにレビューしてもらったものではないのでご注意ください。

(内容薄くてすみません 笑)

目次

  1. デフォルトでのディレクトリ構成
  2. 検討後のディレクトリ
  3. 課題
  4. 結論

1.デフォルトでのディレクトリ構成

以下は、チュートリアルを実行した場合に作られるディレクトリ構成です。
今回は、ECパッケージを作ることを想定としてプロジェクト作成しました。
アプリケーションは、顧客です。

ここで、大切だと思われるのは、アプリケーションを機能単位できるということです。
この機能に対して、GET,POST,PUT,DELETEを行っていく形になるためですね。

$ django-admin startproject ec
$ cd ec
$ python manage.py startapp customer

上記実行後のディレクトリ構成
skitch.png

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でビューとモデルの橋渡しを行う重要なファイル

modify.png

3.課題

・機能をまたいでの、共通的な処理をどうすべきか
 現状機能単位で、messageなどの管理を行っているが、共通的なメッセージはどう管理するか

4.結論

 プロジェクトのディレクトリ構成は、プロジェクトの規模、内容、拡張性を
 どこまで考えるかなどによって変わってきます。
 これだ!という正解はないと思いますが、最善を尽くせるようにしていきたいですね。

※もし皆さんご見解などありましたら、コメントお願い致します。少しでもベスト・プラクティスに
 近づけていければと思います。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?