Djangoとは?特徴やできることを解説!【MVC・MTV】

アイキャッチ画像
  • Djangoとは?
  • Djangoの特徴やできることは?

本記事ではこのような疑問を解決します。

Pythonの学習を終えて、実際にアプリの開発をしてみたいという方は多いです。

そして、Pythonによるアプリ開発に関してググると「Django」という言葉を目にしたのではないでしょうか。

そう、Pythonの学習を終えて実際にアプリ開発をしてみたいという方が次に学習すべきものがDjangoなのです。


そこで今回はDjangoについて特徴やできることを中心にわかりやすく解説していきます。

Djangoとは?

DjangoとはPythonでつくられたWebフレームワークのことです。


では、そもそもWebフレームワークとは一体どんなものなのでしょうか?

WebフレームワークとはWebアプリケーション開発を便利にするための枠組みをまとめたものです。


例えばWebアプリケーションをまっさらな状態からつくっていくことは多大な労力と時間を必要とします。

一方、Webフレームワークが用意されいる場合、枠組みをもとに開発を行えるため、効率的にWebアプリケーションをつくることができます。


また、Webアプリケーション開発をしていく上で避けては通れないものがプログラムのエラーです。

0から開発を行なっていくとなると、その過程で起こるエラーの発生原因を見つけ出すことが厄介で、対処することに困難を伴います。

しかし、Webフレームワークでの開発であれば、エラーの発生原因はある程度決まっているため、発生原因を見つけやすく、対処もしやすいというメリットがあります。


このように効率的なWebアプリケーション開発を実現してくれるのがWebフレームワークであり、Python製のWebフレームワークがDjangoなのです。

なお、DjangoはいくつかあるPython製のWebフレームワークの中で1番の人気を誇っています。


その理由は次で説明するDjangoの特徴を見ればご理解いただけるでしょう。

Djangoの特徴

いくつかある他のPython製のWebフレームワークと比較して、Djangoには以下のような特徴があります。

機能が豊富な万能型のWebフレームワークである

DjangoはPython製のWebフレームワークの中で最も機能が豊富な重量級のWebフレームワークです。
機能が豊富であるということは、様々なアプリケーションに対応しやすいというメリットがあり、Djangoは万能型のWebフレームワークと言われています。

Webフレームワークの仕組みにMTVモデルを採用している

DjangoではWebフレームワークの仕組みとしてMTVモデルが採用されています。
MTVモデルについては後ほど詳しく説明しますが、そのメリットとしては、プログラムの処理が分担されていて開発がしやすいという点があります。
これはチームで分担して開発がしやすかったり、1つのプログラム変更が他のプログラムに影響を及ぼしにくかったりするためです。

学習コストは高いが、仕事の案件数は多い

DjangoはPython製のWebフレームワークの中で学習に要する労力や時間を1番多く必要とします。
これは、機能が豊富な万能型のWebフレームワークであるという点が主な理由になります。
しかし、その分エンジニアの案件サイトや転職サイトでは、Djangoによる開発案件が1番多く求められているのです。

Djangoでできること

Djangoでできることは、基本的にはWebアプリケーションの開発なのですが、ここではより具体的に「こんなものをつくれる」といったことを以下に列挙しました。

・記事や動画を投稿するサイト

・マッチングサイト

・ショッピングサイト

・株価、不動産価格の予測サイト

Djangoの仕組み(MVC・MTV)

「Djangoの特徴」のところでDjangoはWebフレームワークの仕組みにMTVモデルを採用しているということをご説明しました。


と、MTVモデルを説明する前に、MVCモデルを説明します。

「MTVやら、MVCやら、何のこと?」と思われた方もいらっしゃると思いますが、これらはWebフレームワークの仕組みのことです。

そして、一般的にWebフレームワークの仕組みに採用されているのはMVCモデルになります。

世の中のWebアプリケーション(Webサービス)がどのような仕組みで動いているのかを見ながら、下の図でMVCモデルを確認しましょう。

MVCモデル

このようにMVCモデルでは、データを管理するModel、見た目を管理するView、司令塔のような役割を果たすControllerの3つが連携してWebサービスを動かしているのです。


次にMTVモデルをご説明しますが、MTVモデルの中身はMVCモデルとほぼ同じになります。

ただ単に処理の役割を表す名称などが異なるというだけです。

そのためPHPやRubyなどのWebフレームワークで採用されているMVCモデルを最初に説明しました。


では、MVCモデルがわかったところでMTVモデルを下の図で確認しましょう。

MTVモデル

このようにMTVモデルでは、MVCモデルにおけるControllerの役割をViewとURLディスパッチャが担い、Viewの役割をTemplateが担うということです。

初心者におすすめのDjango学習

夕日をバックに手と手を合わせる

チュートリアルを利用する

まずはDjangoのチュートリアルサイトをご紹介します。

Djangoには公式のチュートリアルがありますが、こちらは初心者には少し難しいです。


一方、初心者の方向けのDjangoチュートリアルもあります。

それがDjango Girlsです。

Django Girlsはポーランドの女性2人によって開発されたDjangoチュートリアルです。

無料で利用することができ、公式のDjangoチュートリアルよりも易しく、とっかかりやすいため、初心者でも安心して学習をすることができます。

Django GirlsではDjangoの基本操作や仕組みを実際にコードを書きながら学んでいきます。

Django初心者が利用すべき王道の学習サイトといえるでしょう。

書籍を利用する

書籍でのDjango学習ではこちらの本を圧倒的におすすめします。

この本では、実際にアプリをつくりながらDjangoについて学んでいきます。

いくつかアプリを作成するため、何度も回しているとDjangoの体系的な知識を身につけることができます。

また、初心者にわかりやすいようにコードや処理の説明がなされています。

私自身、この本は何度も読み返すほどお世話になりました!

プログラミングスクールを利用する

最後にプログラミングスクールを利用したDjango学習を紹介します。

初心者の方が最速で効率的に目標(DjangoでのWebサービス開発など)を達成するにはやはりプログラミングスクールがおすすめです。

プログラミングは初心者にとってわからないことばかりであり、エラーへの対処には手間と根気が必要です。

一方、スクールを利用すればいつでもメンターや講師にわからないことを質問することができ、悩みや疑問をすぐに解決することができます。

なお、Djangoが学べるおすすめのプログラミングスクールについてはコチラの記事を参考にしてみてください。

関連記事

Djangoが学べるプログラミングスクールとは?おすすめのDjangoスクールとは? 本記事ではこのような疑問を解決します。DjangoはPythonで作られた中で1番メジャーなWebフレームワークです。みんなが普段利用するYouT[…]

アイキャッチ画像

まとめ

  • Djangoとは?
    ・PythonでつくられたWebフレームワーク
    ・WebフレームワークはWebアプリケーション開発を便利にするための枠組みをまとめたもので、効率的な開発を実現

  • Djangoの特徴
    ・機能が豊富な万能型のWebフレームワークである
    ・Webフレームワークの仕組みにMTVモデルを採用している
    ・学習コストは高いが、仕事の案件数は多い

  • Djangoでできること
    以下、Djangoで開発ができるものの具体例
    ・記事や動画を投稿するサイト
    ・マッチングサイト
    ・ショッピングサイト
    ・株価、不動産価格の予測サイト

  • Djangoの仕組み(MVC・MTV)
    ・Djangoでは、データを管理するModel、見た目を管理するTemplate、司令塔のような役割を果たすView・URLディスパッチャのそれぞれが連携してWebサービスを動かしている
    →MTVモデル

  • 初心者におすすめのDjango学習
    Django Girls
     →無料で利用でき、初心者にとって易しいDjangoのチュートリアル
    Djangoのツボとコツがゼッタイにわかる本
     →初心者にわかりやすいようにコードや処理の説明がなされているDjango学習におすすめの書籍

    ・Djangoスクール(下の記事)
     →すぐに疑問や悩みが解決できる最速で効率的なDjango学習を実現できる
関連記事

Djangoが学べるプログラミングスクールとは?おすすめのDjangoスクールとは? 本記事ではこのような疑問を解決します。DjangoはPythonで作られた中で1番メジャーなWebフレームワークです。みんなが普段利用するYouT[…]

アイキャッチ画像