Djangoの考え方について

Djangoアプリケーション

Djangoは「MVCアーキテクチャー」と呼ばれる考え方に基づいて設計されています。このMVCというのは「Model」、「View」、「Controller」の略で、各役割があります。

 MVCとは

Model(モデル)
データアクセス関係の処理と担当するものです。わかりやすく言えば「Webアプリとデータベースとの間のやり取りを担当するもの」です。
View(ビュー)
画面表示関係を担当するものです。画面に表示されるWebページを作るための部分です。
Controller(コントローラー)
全体の制御を担当するものです。これが、Webアプリで作成する「プログラム」の部分と考えていいでしょう。

プログラムの中心となるのは、コントローラーです。コントローラーの中で、必要に応じてモデルを呼び出しデータを受け取ったり、ビューを呼び出して画面に表示するWebページを作ったりしていくわけです。そうやってモデルやビューを必要に応じて呼び出しながら、全体の処理をコントローラーで進めていきます。

 アプリとプロジェクトの概念

プロジェクトとアプリケーションの違い
アプリケーションとは、実際に何らかの処理を行う Web アプリケーションを指します。例えばブログシステムや公開レコードのデータベース、単純な投票アプリといった具合です。プロジェクトとは、あるウェブサイト向けに設定とアプリケーションを集めたものです。一つのプロジェクトには複数のアプリケーションを入れられ ます。また、一つのアプリケーションは複数のプロジェクトで使えます。出典:Djangoドキュメント https://docs.djangoproject.com/ja/2.2/intro/tutorial01/
ヒロヤン
んー〜ーチュートリアル を読んでもよくわからない・・・。

Djangoにはアプリという概念とプロジェクトという概念が存在し、アプリというのは、小さな各アプリのことです。
これらを包含する意味をもつプロジェクトという概念があります。
つまりDjangoではアプリが3個で、これらをとりまとめる1つのプロジェクトという作りになっているのです。
そして、このプロジェクトという概念に、いくつかのファイルが存在します。
それが、プロジェクトとアプリケーション

django-admin startapp project

というコマンドで作成される、
manage.py
   <プロジェクト名>/
       __init__.py
       settings.py
       urls.py
       wsgi.py
などのファイルです。

この時に、urls.pyというプロジェクト全体のURLconfをコントロールするファイルが作成されている点に注目すると、同じ名前のファイルを各アプリケーションでも作成をしますよね。
ただ、役割が違ってプロジェクトレベルのurls.pyはあくまでプロジェクト全体のurlをコントロールするものです。

そうしてアプリケーションは、python manage.py startappコマンドで作成されますが、このアプリケーション内部でもURLconfを作成する必要があります。

このように、プロジェクトとアプリケーションという概念が分かれているということをまずはしっかり押さえる事が重要なのです。

 まとめ

Djangoでウェブを作成する前に、まずはアプリとプロジェクトの概念を理解する事!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です