【Django入門0】Djangoの学び方まとめ

Djangoの学び方の解説ページアイキャッチ

このページにはプロモーションが含まれています

このページでは、Django の学び方について解説していきます!

本サイトでは「Django 入門の解説記事」を公開しており、個別な詳細に関してはそれらの記事の中で解説しています。ただ、Django を利用してウェブアプリを開発していく上で学ぶべきことが網羅的に解説されているページが無かったので、このページで Django を利用するにあたって学ぶべきことをザーッと説明しておきたいと思います。

Django の学び方

では、Django を利用してウェブアプリを開発していく上で学ぶべきことを簡単に説明していきます。詳細に関しては、各項目のリンク先にある個別の解説ページを参照してください。

学び方の流れ

最初に、簡単に Django を学んでいく流れを説明しておきます。

まず、下記の節で紹介している Django の概要を学んでいきましょう。これにより、Django を利用する意義Django で開発するウェブアプリの内部構成・動作について理解することができます。これらは、Django を学ぶモチベーションにもなりますし、開発したウェブアプリでトラブルが発生したときに自ら考えて問題解決するための知識としても役立ちます。

Django の大枠を理解したら、次は下記の節の内容を学ぶことをオススメします。これらは Django で開発するウェブアプリに必要不可欠なものとなります。これらを理解することで、Django で基本的なウェブアプリを開発することができるようになります。

また、ウェブアプリではユーザー管理やログイン機能が必要となるものが多いため、続いて下記の節の内容を学んでいきましょう。これらを理解することで、ユーザー管理やログイン機能を備えた、より実用的なウェブアプリが開発できるようになります。

以上の内容を理解すれば、基本的なウェブアプリであれば自身で開発することができるようになるはずです。

続いては、下記の節の内容を学ぶことをオススメします。ウェブアプリは開発するだけでなく管理・運営していくことも重要です。そのため、ウェブアプリの管理画面について理解し、適切にカスタマイズできる知識を身に付けておく必要があります。

また、Django には、より使いやすい速い見た目の良い魅力的なウェブアプリを効率的に開発していくための仕組みが多く用意されています。これらを活用していけるよう、次は下記の節の内容を学ぶことをオススメします。

さらに、より柔軟な使い方を実現するために下記の API 関連の内容を学んでいきましょう。API を搭載することで、他のウェブアプリと連携したり、ウェブブラウザ以外からも容易に操作可能なウェブアプリが実現したりできるようになります。

また、よりインタラクティブ&より動きのあるウェブアプリが開発できるよう、下記の JavaScript 関連の内容を学ぶこともオススメします。先ほど紹介した API を利用することで、リアルタイムにデータ更新を行うウェブアプリも実現できるようになります。

最後に学ぶべきことは下記のテストになります。ウェブアプリの品質を向上させることもできますし、テストによってウェブアプリの開発効率を向上させることにもつながります。

特に序盤は、基本的なウェブアプリを開発するための知識について学んでいくことになりますが、それらを、より魅力的に、かつ効率的に開発していくための仕組みが用意されている点も Django の特徴となりますので、それらについてもしっかり理解していきましょう!

ということで、ここからは Django で学ぶべきことを項目別に簡単に説明していきます。

スポンサーリンク

概要を学ぶ

Django を利用する前に、まずは「Django とは何か?」について理解しておいた方がよいです。「Django とは、そもそも何なのか?」「Djando は何のために利用されるのか?」「Django を利用するメリット・デメリットは?」などといった Djano の特徴については下記ページで解説していますので、詳細は下記ページを参照してください。既に Django について理解している方は、下記ページに関してはスキップしていただいて問題ありません。

【Django入門1】Djangoとは?

全体像・仕組みを学ぶ

Django の概要を理解したら、次は Django でウェブアプリを開発する上で必要となる「Django で開発したウェブアプリが動作する仕組み」や「Django で開発するウェブアプリの内部の構成」を理解していくのが良いです。これらを理解しておくことで、今後の学習の理解度が高まりますし、トラブルなどが発生した場合の原因究明にも役立ちます。

これらについては下記ページで詳細を解説していますので、Django でウェブアプリを開発するのであれば、一度は目を通しておくとよいと思います。

Djangoの全体像とDjangoのウェブアプリが動作する仕組みについての解説ページアイキャッチ 【Django入門2】Djangoの全体像・ファイル構成・動作の仕組み

ビューを学ぶ

先ほど紹介したページでも解説していますが、Django で開発するウェブアプリにおいて主な開発対象となるのは「モデル」「ビュー」「テンプレート」の3つになります。この中でも、まずウェブアプリを動作させるという観点では特に「ビュー」が重要となります。ビューを開発し、さらにビューと URL とをマッピング(関連付け)することで、ウェブブラウザからウェブアプリの画面の表示やウェブアプリの操作が可能となります。

このビュー、さらにはビューと URL とのマッピングについては下記ページで解説しています。

Djangoのビューの機能についての解説ページアイキャッチ 【Django入門3】ビュー(View)の基本とURLのマッピング

補足しておくと、実際にウェブアプリを開発する際には、ビューではなくモデルから開発(設計)していくことが多いと思います。ですが、Django を学ぶという観点では、モデルよりもビューについて先に理解しておく方が良いと思います。前述の通り、ビュー(及び URL とビューとのマッピング)が開発できれば、とりあえずウェブアプリが動作するようになりますので。そのため、本サイトでは、モデル(さらにはテンプレート)よりも先にビューについて学ぶことをオススメしています。

スポンサーリンク

テンプレートを学ぶ

前述の通り、Django で開発するウェブアプリにおいて、主な開発対象となるのは「モデル」「ビュー」「テンプレート」の3つになります。この中のテンプレートについては下記ページで詳細を解説しています。

Djangoのテンプレートの解説ページアイキャッチ 【Django入門4】テンプレート(Template)の基本

テンプレートは、主にウェブアプリの見た目を作りこむために必要で、ウェブアプリ内の各ページの見た目を統一することに役立ちます。

また、それだけでなく、各ページを短手番で開発することにも役に立ちます。このテンプレートのように、ウェブアプリの開発効率を向上させるための仕組みが Django には多く用意されています。

フォームを学ぶ

ウェブアプリは、単に画面を表示するだけでなく、ユーザーからの入力を受け付けるようなことも重要になります。例えば、ログインを実現しようと思うとユーザー名(もしくはメールアドレス等)とパスワードの入力を受け付けることが必要となりますよね?

こういった、ユーザーからの入力を受け付けるために必要となるのがフォームとなります。インタラクティブなウェブアプリを実現するためには、先に挙げた「モデル」「ビュー」「テンプレート」だけでなく、このフォームも重要となります。

このフォームに関しては下記ページで詳細を解説しています。

Djangoのフォームの解説ページアイキャッチ 【Django入門5】フォームの基本

モデルを学ぶ

さらに、ウェブアプリではデータの保存も重要となります。例えば X (旧 Twitter) では、ユーザー情報や、ユーザーのツイート、ユーザーのフォロー・フォロワー状況等のデータが保存されているため、各ユーザーのツイートを閲覧したり、ユーザーのフォロワーの一覧を表示したりすることができるようになっています。

こういったデータの保存の役割を持つのが「モデル」となります。より具体的には、モデルはウェブアプリで扱うデータベースのテーブルを定義するもので、これによってウェブアプリで扱うデータを決定したり、前述のようにデータの保存、さらにはデータの取得等を実現します。

このモデルについては下記ページで詳細を解説しています。

モデルの解説ページアイキャッチ 【Django入門6】モデルの基本

ちなみに、保存するデータの入力には、先ほど紹介したフォームが利用されることが多いです。

スポンサーリンク

リレーションを学ぶ

モデルを理解する上で重要になるのが、この「リレーション」となります。このリレーションは、データベースにおける各テーブルのレコードを関連付けるための仕組みとなります。このリレーションを利用することで、異なるテーブルのレコードを関連付けて管理することができるようになります。そして、この関連付けにより、一方のレコードから他方のレコードを辿ることができるようになります。

例えば X (旧 Twitter) では、特定のユーザーのツイート一覧を表示することができるようになっていますし、逆に特定のツイートから、それをツイートしたユーザーを表示することができるようになっています。これらの機能が実現可能なのは、ユーザーとツイートが関連付けて管理されているからになります。

このように、リレーションを利用することで、ウェブアプリで実現可能な機能の幅を広げることができるようになり、より魅力的なウェブアプリを開発することができるようになります。

このリレーションについては下記ページで詳細を解説しています。

Djangoのリレーションの解説ページアイキャッチ 【Django入門7】リレーションの基本

モデルフォームを学ぶ

前述でフォームについて簡単に説明しましたが、このフォームはモデルから作成することが可能です。つまり、モデルさえ定義してやれば、そのモデルで扱うデータの入力を受け付けるためのフォームはわざわざゼロから定義する必要が無く、予め定義したモデルから作成することが可能です。その仕組みが「モデルフォーム」であり、これを利用することで、フォームを効率的に作成することができるようになります。

効率化のための仕組みなので、必ず理解しておく必要はありません。ですが、何かを開発して利益を出していくためには開発効率の向上も重要となりますので、このモデルフォームについても理解しておくことをオススメします。

モデルフォームについては下記ページで詳細を解説しています。

Djangoのモデルフォーム解説ページアイキャッチ 【Django入門8】モデルフォームの基本

カスタムユーザーを学ぶ

ウェブアプリにおいては「ユーザーの管理」が重要となることが多いです。例えば X でも、Instagram でも、Facebook でも、アプリを利用するためにユーザーの登録が必要となります。さらに、その登録したユーザーの情報を利用することで、それぞれのアプリで魅力的な機能が実現されるようになっています。

Django で開発するウェブアプリでもユーザーを管理することが可能であり、このためにカスタムユーザーという仕組みを利用することになります。魅力的なウェブアプリを開発していくためにも、このカスタムユーザーについてはしっかり理解しておくことをオススメします。

カスタムユーザーに関しては下記ページで詳細を解説しています。

【Django入門9】カスタムユーザーによるユーザー管理

スポンサーリンク

ログイン機能の実現方法を学ぶ

同様に、ウェブアプリでは「ログイン機能」が重要となることも多いです。有名なウェブアプリでもログイン機能が搭載されていることが多いです。登録済みのユーザーしか利用できなくしたり、ログインしたユーザーを識別し、そのユーザーに応じた画面表示を実現したり、ユーザーに応じた権限を与えたりするためにはログイン機能が必要となります。

このログイン機能については下記ページで解説しています。ログイン機能は、Django でのウェブアプリの作り方における “基礎” という範疇は超えているかもしれませんが、ウェブアプリを開発する上で必要になることが多いので、ログイン機能の実現方法については必ず覚えておいた方がよいと思います。

ログインの実現方法の解説ページアイキャッチ 【Django入門10】ログイン機能の実現

管理画面の概要を学ぶ

基本的には、ここまでの解説で学んできたことを活用することで、Django でそれなりのウェブアプリが開発できるようになったことになります。

ここで少し話題を変え、ここからはウェブアプリの運営に役立つ仕組みを紹介していきます。

Django で開発するウェブアプリでは、デフォルトで「管理画面(管理者用のページ)」が搭載されるようになっています。この管理画面では、ウェブアプリの管理者がデータベースのレコードの操作(新規作成・更新・削除など)を行うことができます。

もう少しウェブアプリの運営という観点で説明すると、「ユーザー」や「ツイート」、また掲示板に対する「コメント」などもデータベースのレコードとして管理されることになるため、管理画面から不適切なユーザーを削除することで強制退会させたり、不適切なツイートやコメントを修正・削除したりすることが可能です。これにより、よりユーザーの使いやすいウェブアプリとして運営していくことができます。

管理画面の使い方については下記ページで解説しています。ウェブアプリを開発するという観点からは少しずれますが、管理画面の理解はウェブアプリの運営に役立ちますので、是非管理画面についてもしっかり理解しておきましょう!

Djangoの管理画面の使い方の解説ページアイキャッチ 【Django入門11】管理画面(admin)の使い方の基本

管理画面のカスタマイズ方法を学ぶ

先ほど説明した管理画面は開発者自身がカスタマイズすることができます。これにより、より使いやすい管理画面を実現することが可能です。また、デフォルトの管理画面で操作可能なレコード(テーブル)は制限されているため、管理画面から操作可能な操作可能なレコード(テーブル)を追加するためにも、この管理画面のカスタマイズが必要となります。

この管理画面のカスタマイズについては下記ページで解説しています。

【Django入門12】管理画面のカスタマイズ(ModelAdmin)

スポンサーリンク

ページネーションを学ぶ

ここからまた、Django でのウェブアプリの開発に必要となる仕組み・機能の解説に戻ります。

ウェブアプリでは「ページネーション」を利用しているものが多いです。ページネーションとは、1つのページを複数に分割する機能です。例えば Google での検索結果は1度に全て表示されるのではなく、最初は10件程度の検索結果のみが表示されるようになっています。そして、ページ下部のページ番号のリンクをクリックすれば、次の検索結果を表示することができるようになっています。これにより、1つ1つのページが見やすくなり、さらに表示速度も向上することになります。

こんな感じで、ページを分割して表示する機能がページネーションとなります。

このページネーションは Django を利用することで簡単に実現することが可能で、その手順については下記ページで解説しています。このページネーションに関しては Django でウェブアプリを開発する上で必ず必要になる機能というわけではないですが、使いやすいウェブアプリを開発するために知っておいた方が良い機能となります。

Djangoにおけるページネーションの解説ページアイキャッチ 【Django入門13】ページネーションの基本

N + 1 問題の解決方法を学ぶ

Django では、モデルを利用することで、データベースの知識なしにデータベースを利用することができるようになっています。ただ、データベースの知識なしにウェブアプリを開発すると、「N + 1 問題」が発生してウェブアプリの動作が重くなってしまう可能性があります。ウェブアプリの動作が重いとユーザーにストレスを与えることになり、どんなに魅力的なウェブアプリでもユーザーが離れてしまう可能性もあります。

そのため、この N + 1 問題が発生する原理や、Django での N + 1 問題の解決方法については知っておいた方がよいです。これらについては、下記ページで詳細を解説しています。

DjangoにおけるN+1問題の解説ページアイキャッチ 【Django入門14】N+1問題とselect_related・prefetch_relatedでの解決

個人で試しにウェブアプリを開発するのであれば、N + 1 問題を気にすることなく、単純にウェブアプリ開発を楽しんでいただくのでよいと思います。ですが、多くのユーザーに利用してもらうウェブアプリを開発したいのであれば、この N + 1 問題の発生は必ず防止した方が良いため、N + 1 問題については理解しておくことをオススメします。

クラスベースビューを学ぶ

前述でビューについて解説しましたが、このビューの作り方には大きく分けて下記の2つがあります。そして、後者で開発するビューを「クラスベースビュー」と呼びます。

  • 関数を定義する
  • Django に定義されているクラスを継承して定義する

クラスベースビューでは、既存のクラスを継承してビューを開発していくことになり、既存のクラスを継承する分、開発者に必要となるコーディング量が減って開発効率が上がります。また、この既存のクラスは品質が高いため、それを継承することで自然と品質の高いビューも実現可能です。つまり、ビューをクラスベースビューとすることで、高品質なウェブアプリを効率的に開発することが可能となります。

このクラスベースビューについては下記ページで詳細を解説しています。このクラスベースビューのように、Django では高品質なウェブアプリを効率的に開発するための仕組みがたくさん存在していますので、その一例としてクラスベースビューについては必ず理解しておきましょう!

クラスベースビューの解説ページアイキャッチ 【Django入門15】クラスベースビューの基本

スポンサーリンク

CRUD の実現方法を学ぶ

先ほど紹介したクラスベースビューを利用することで、Django で「CRUD 操作」を簡単に実現することが可能です。CRUD 操作とは、下記の4つの操作のことを言います。括弧内にはウェブアプリのユーザーに対する操作例を示しており、これらがウェブアプリに必要な操作であることはイメージが湧くのではないかと思います。

  • Create (ユーザーの新規登録)
  • Read (ユーザーの情報の閲覧)
  • Update (ユーザーの登録情報更新)
  • Delete (ユーザーの退会)

これらの CRUD 操作を実現するための手順については、下記ページで解説しています。

【Django入門16】CRUDの実現(Create・Read・Update・Delete)

静的ファイルの扱い方を学ぶ

ここまで紹介してきたビュー・モデル・テンプレートは、基本的に動的にページのファイル(データ)を生成し、それをクライアント(ウェブブラウザなど)に返却するためのものになっています。これにより、例えば利用中のユーザーに応じてページ(画面)の表示内容を変化させるようなことが可能となります。なので、ここまで紹介してきたような解説ページを読んでくだされば、そういった動的に生成したファイルのクライアントへの返却が実現できることになります。

ですが、逆に静的なファイル(データ)のクライアントへの返却は、ここまで解説してきた内容では実現できません。静的なファイルを扱うための手順が別途必要となります。

静的なファイルとは、具体的には下記のようなものになります。これらをウェブアプリで扱えるようになることで、画像をページに表示したり、CSS でページの見た目を綺麗にしたり、JavaScript でページに動きを加えたり、よりインタラクティブなウェブアプリを実現した入りすることができるようになります。

  • 画像
  • CSS
  • JavaScript

これらの静的なファイルを Django で開発するウェブアプリで扱うための手順については下記ページで解説しています。

Djangoでの静的ファイルの扱い方の解説ページアイキャッチ 【Django入門17】静的ファイルの扱い方(画像・JS・CSS)

HTTP リクエストでのウェブアプリの操作を学ぶ

ここまでが、Django でウェブアプリを開発・運営していくために必要となる基本的な内容の解説となります。

ただし、ここまでの説明ではウェブブラウザからウェブアプリを操作することを前提に解説を進めています。ですが、より正確には、ウェブアプリは「HTTP リクエスト」というデータを送信することで操作可能なアプリであり、ウェブブラウザでなくても、例えば Python スクリプトから HTTP リクエストを送信することでウェブアプリを操作することも可能です。

こういった HTTP リクエストや、HTTP リクエストの送信によるウェブアプリの操作に関しては下記ページで解説をしています。ウェブアプリ開発からは少し横道に逸れる話題のようにも思えますが、この HTTP リクエストでのウェブアプリの操作の知識は、今後説明するウェブアプリの API 開発に役立ちますので、是非このページも読んでみてください。

ウェブブラウザ以外からのウェブアプリの操作方法の解説ページアイキャッチ 【Django入門18】ウェブアプリのHTTPリクエストでの操作

スポンサーリンク

API の開発方法を学ぶ

先ほど触れた「API」を開発することで、ウェブブラウザからの操作だけでなく、他のアプリや Python スクリプトからウェブアプリを操作することができるようになります。これにより、他のアプリと連係動作するウェブアプリや、iPhone や Andoroid のアプリから操作可能なウェブアプリを実現することができるようになります。例えば X であれば、ウェブブラウザだけでなく、X 専用アプリから操作することが可能ですよね?そういったウェブアプリを自身で開発できることになります。

また、Python スクリプトからウェブアプリの操作を行うことで、自動でウェブアプリを操作することができるようになり、これによりウェブアプリの動作確認を自動化することもできるようになります。

近年のウェブアプリは、ウェブブラウザ以外から操作されることを前提としたものも多いため、この API についてもしっかり理解しておきましょう!Django での API 開発の基本については下記ページで解説しています。

DjangoでのWeb APIの開発の仕方の説明ページ愛卯キャッチ 【Django入門19】Web APIを開発

DRF の使い方を学ぶ

先ほど説明した API を効率的に開発するためのフレームワークが、この節の題名にもある「DRF (Django REST Framework)」となります。より正確には、DRF は Django で REST API を開発するためのフレームワークとなります。REST API の説明を始めると長くなるので省略しますが、簡単に言えば、REST API は、API の仕様に制約を与えることで、より使いやすい API となっています。DRF を利用することで、この REST API を簡単に開発することが可能となります。

DRF については下記ページで詳細を解説しています。

【Django入門20】Django REST FrameworkでのWeb APIの開発

JavaScript で実現できることを学ぶ

また、ウェブアプリでは「JavaScript」を利用することで、表示するページ(画面)に動きを付けることができるようになります。これにより、よりインタラクティブで見た目のリッチなウェブアプリを実現することができるようになります。さらに、JavaScript から API を実行することで、リアルタイムにウェブアプリから取得したデータをページに表示することもできるようになります。

JavaScript を利用することで実現可能となることの一例は下記ページで紹介しています。

Djangoで開発するウェブアプリでのJavaScriptの扱い方の解説ページアイキャッチ 【Django入門21】JavaScriptの扱い方

静的ファイルの扱い方を学ぶ でも簡単に述べましたが、JavaScript も静的ファイルの1つであり、JavaScript も画像や CSS と同様の扱い方でウェブアプリで利用することができるようになります。また、JavaScript についての詳細は、別途 JavaScript の参考書や解説サイトで勉強することをオススメします。

スポンサーリンク

テストについて学ぶ

ウェブアプリが開発できたら、他の一般的なウェブアプリと同様に、テストを実施して品質を高める必要があります。Django にはテストフレームワークが搭載されており、これを利用することで効率的に&簡単にテストを実施することが可能です。また、手順1つで全テストが実施できるため自動化もしやすいです。

この Django のテストフレームワークを利用したテスト実施手順については下記ページで解説しています。

Djangoのテストの解説ページアイキャッチ 【Django入門22】テストを実施する

まとめ

このページでは、Django の学び方について解説しました!

Django でウェブアプリを開発するためには「モデル」「ビュー」「テンプレート」、さらには「フォーム」「リレーション」などを理解しておく必要がありますので、まずはこれらの内容を学ぶことをオススメします。これらを理解することで、基本的なウェブアプリを開発することが可能になります。

ですが、ウェブアプリを運営していくことを考えると、ユーザーを管理したりログイン機能を搭載したり、さらにはウェブアプリを管理するための知識も必要となります。そのため、これらについても理解しておくこともオススメします。

さらに、ウェブアプリをより魅力的なものに仕上げていく、さらに、それを効率的に行っていくような仕組みが Django には用意されていますので、これらについてもしっかり理解しておきましょう!

ここで紹介したページを読めば、上記のような内容を学ぶことができますので、是非紹介したページを読み進めていただければと思います。そして、是非ウェブアプリ開発を楽しんでいただければと思います!

同じカテゴリのページ一覧を表示