エミ眠太の自由帳
 エミ眠太の自由帳
    
 
 基本      2022-03-09      

Django REST Frameworkのディレクトリ構成

Language:
 Python
Framework/Library:
 Django Django REST Framework
Technology:
 環境構築 REST API Web API
Platform/Tool:

記事一覧へ

目次


はじめに

Django REST Framework(以降、DRF)の環境構築にてDjangoプロジェクトを作成しましたが、いきなり膨大な量のディレクトリ・ファイルができました。全ファイルを知っておかないといけないことはありませんが、「よく分からんけど動いてはる」のは気持ち悪いじゃないですか。ということでデフォルトの構成についてまとめてみました。

ディレクトリ構成

こんな感じになっているはずです。では、「1行解説」はじめます。

ルートディレクトリおよび全体に影響するディレクトリやファイル

DjangoプロジェクトやDjangoアプリケーション以外のものをここではまとめています。

  • drf_sample/(l.1):
    • ルートディレクトリです。環境構築時にプロジェクト・アプリケーションを格納する箱として任意の名前を付けて用意します。
  • drf_virtual/(l.2):
    • 当該API専用に使用する仮想環境です。drf_sample作成時にデフォルトで生成されるものではありませんが、ルートディレクトリ内に作成することもできます。
  • manage.py(l.27):
    • Djangoプロジェクトにおいて、ローカルサーバーの起動、マイグレーションファイルの作成等、様々なコマンドを用意しているファイルです。
  • db.sqlite3(l.28):
    • アプリケーションに組み込まれる形で利用される簡易的なデータベースです。Djangoではデフォルトで利用可能で、設定しない限りはこのデータベースに情報が格納されます。

Djangoプロジェクト

  • sample_project/(l.16):
    • $ django-admin startprojectコマンドでDjangoプロジェクトディレクトリおよびその傘下のファイルを作成できます。自動で生成されるファイルは以下の通りです。
  • __init__.py(l.17):
    • このディレクトリ(sample_project/)がPythonのパッケージであることをPythonに認識させるためのファイルです。空のファイルで使用しません。
  • __pycache__/(l.18):
    • Pythonファイル実行時にコンパイルされたこのディレクトリ内のモジュールが、それぞれファイル名.cpython-39.pycという形式でこのディレクトリ内に生成されていきます。プログラムが変更されると書き換えられるもので、文字通りキャッシュなので(消しても問題ありませんが)残しておくと実行が速くなります。
  • asgi.py(l.23):
    • asgiとはAsynchronous Server Gateway Interfaceの略で、Web socket等のプロトコルをサポートし、非同期通信ができるようになります。そのエンドポイントとして使用されるファイルです。
  • settings.py(l.24):
    • Djangoプロジェクト全体を設定するファイルです。データベース設定、認証系の設定等が可能です。
  • urls.py(l.25):
    • HTTPリクエストに対して、Djangoアプリケーション内のどのViewを表示するかルーティングするためのファイルです。
  • wsgi.py(l.26):
    • wsgiとはWeb Server Gateway Interfaceの略で、アプリケーションがWebサーバと通信するための標準のインタフェースです。そのエンドポイントとして使用されるファイルです。

Djangoアプリケーション

  • sample_app/(l.7):
    • $ django-admin startappコマンドでDjangoアプリケーションディレクトリおよびそれにぶら下がるファイルを作成できます。アプリケーションではデータベース定義、Viewの作成等ができます。
  • migrations/(l.8):
    • $ python3 manage.py makemigrationsを実行し生成されたマイグレーションファイルが保管されるディレクトリです。
  • __init__.py(l.10):
    • このディレクトリ(sample_app/)がPythonのパッケージであることをPythonに認識させるためのファイルです。空のファイルです。
  • admin.py(l.11):
    • adminサイトを管理するためのファイルです。実際にデータを入力するために、models.pyで作成したクラスをadminサイトに表示することができます。
  • apps.py(l.12):
    • 作成したDjangoアプリケーションの場所をDjangoプロジェクトに認識させるために設定ファイルです。※通常、startapp時に自動で生成されるため設定は不要です。
  • models.py(l.13):
    • データベースを定義するためのファイルです。データベースフィールドをまとめたモデルを作成することで、データベースにどのような情報をどのような形式で書き込むことができるか定義します。
  • tests.py(l.14):
    • Djangoアプリケーションにおいて、テストを実行する際にコードを記述するファイルです。
  • views.py(l.15):
    • HTTPリクエストに対し、表示する情報を記述するためのファイルです。

まとめ・参考

ここまで、前記事で環境構築時に自動(+一部手動)で生成されたディレクトリおよびファイルについて、それぞれの役割を解説してきました。DRFの場合、この他にもSerializerというものが必要になるのですが、それは次の記事でまとめます。


記事をシェアする


関連する記事

よろしければこちらの記事も参考にしてみてください。

Loading...




記事一覧へ