- app
    - __init__.py
    **- admin.py**
    - migrations
        - 0001_initial.py
        - __init__.py
        - __pycache__
    **- models.py**
    - tests.py
    **- views.py**
    - __pycache__
    - apps.py

- db.sqlite3

- ganchan
    - __init__.py
    - __pycache__
    - asgi.py
    **- settings.py
    - urls.py**
    - wsgi.py

**- manage.py**

- static

- templates
    - account
    - index.html
    - openid
    - socialaccount
    - tests
    - timer.html

概要

  1. manage.py: これはDjangoプロジェクトの運用を手助けする道具箱のようなものです。このファイルを使って新しいWebアプリの部品(アプリケーション)を作ったり、データベースの更新(マイグレート)を行ったり、Webアプリを動かす(サーバーを起動)ことができます。
  2. settings.py: Djangoプロジェクトの設定書のようなものです。データベースの設定(どのデータベースを使うか)、デバッグモード(エラーが起きたときに詳しい情報を表示するかどうか)、インストールしたアプリのリスト、ミドルウェア(リクエストとレスポンスを処理するツールのリスト)、テンプレートの設定(HTMLのテンプレートをどこに保存するか)、静的ファイルの設定(画像やCSSファイルはどこにあるか)など、Webアプリの動きを制御する重要な情報が全てここに書かれます。
  3. urls.py: Djangoの道案内です。ユーザーが特定のURLにアクセスしたとき、それをどのビュー(画面)につなげるかを決めるのがこのファイルの役割です。
  4. models.py: データベースの設計図です。ここで定義するクラスが、データベースのテーブルに対応します。例えば、ブログの投稿を管理するためには**Post**という名前のモデルを作り、その中にタイトル、本文、投稿日などを定義します。
  5. views.py: ユーザーに何を表示するかを決める部分です。たとえば、「全てのブログ投稿を表示する画面」や「新しいブログ投稿を作る画面」など、それぞれの画面に対応するコードをここに書きます。
  6. admin.py: Djangoには便利な管理画面がついていますが、そのカスタマイズを行うのがこのファイルです。例えば、ブログの投稿を管理画面から追加したり編集したりするためには、**Post**モデルをここで登録します。

これらのファイルは一緒に動くことで、Webアプリケーションが形成され、動くのです。

図解

以下はDjangoの主要なファイルとその関係を示す図です。

https://showme.redstarplugin.com/d/sCbM6tcG

この図では以下のような関係性が示されています: