1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

0から始めるDjango開発(Part1) Djangoとは??

Posted at

Djangoの全体像

Djangoの構成要素(コンポーネント)は主に次のようなものがある。

  • ルーティング(Rooting)
  • ビュー(View)
  • フォーム(Form)
  • モデル(Model)
  • テンプレート(Template)

一般的にMVTモデルと呼ばれる

全体の処理の流れ

1. ユーザーからのリクエストに含まれるURLから処理を任せるアプリケーションを識別して、処理を渡す。
2. URLから処理すべきViewを識別して、処理を渡す。
3. Formのコンポーネントを利用している場合にFormに処理を渡す。
4. FormオブジェクトをViewに返す。
5. DBとの連携が必要であればModelに処理を渡す。
6. DBに対してSQLを発行。
7. DBに対する処理結果をModelに返す。
8. DBの処理結果をViewに返す
9. HTML生成をTemplateに命令し、その際、フォームオブジェクトあるいはDBから取得した結果があれば渡す。
10. 生成したHTMLをViewに返す。
11. HTMLをレスポンスとしてユーザーに返す。

Djangoプロジェクトのファイル構成

project: プロジェクト全体をまとめるディレクトリ

  • application: アプリケーション関連ファイルをまとめるディレクトリ
    • migrations: migrationファイルを格納するディレクトリ
    • templates: Templateファイルを格納するディレクトリ
      • index.html: Templateファイル
    • __ init __.py: Pythonのパッケージを示すファイル(空で良い)
    • admin.py: 管理サイトの設定ファイル
    • apps.py: アプリケーション構成設定ファイル
    • forms.py: Form定義ファイル
    • models.py: Model定義ファイル
    • tests.py: テストコード記述ファイル
    • urls.py: アプリケーション用ルーティング定義ファイル
    • views.py: View定義ファイル
  • project: プロジェクト全体に関わるファイルをまとめるディレクトリ
    • __ init__.py:
    • asgi.py: デプロイ用ファイル
    • settings.py: プロジェクト設定ファイル
    • urls.py: プロジェクト用ルーティング定義ファイル
    • wsgi.py: デプロイ用ファイル
  • manage.py: コマンド実行用ファイル

各コンポーネントの役割

Rooting: URLからどのアプリケーションまたはビューに処理を渡すかを識別する。

View: 司令塔の役割を果たし、ModelにDB操作を指示したり、Templateに表示用データを渡してHTML生成を指示したりする。

Form: フォーム画面で入力されたユーザー入力値をフォームオブジェクトに変換して、DBに保管する。また、入力値のValidationも行う。

Model: DBとの連携を受け持つ。Viewから指示を受けると、その裏でSQLを発行し、DBの更新や検索結果をViewに返したりする。

Template: Viewから指示を受けると、HTMLの雛形にViewから受け取るDBの処理結果などを埋め込んで、HTMLを作成してViewに返す。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?