Djangoとは

Djangoとは

DjangoとはPythonのWebフレームワークのことです。
Ruby on RailsがRubyのWebフレームワークであり、LarabelがPHPのWebフレームワークであるように、DjangoはPythonのWebフレームワークです。

Webフレームワークとは

Webフレームワークとは、Webサービスを開発する際に必要になるであろう実装や設計、機能などがあらかじめ用意されているパッケージのことです。
DjangoはPythonのWebフレームワークなので、必要になる機能などがあらかじめPythonで実装されています。
これによりエンジニアは、このあらかじめ実装されているコードの上に、自分のオリジナルな実装を加えていくことができます。

例えばDjangoにはあらかじめログイン機能などが実装されています。
本来は複雑になり面倒くさくなる実装もこの機能を活用することで数行のコードでログイン機能をWebサービスに組み込むことができるようになります。

Djangoの発祥と歴史

Djangoはもともとニュースや記事などをWebで扱いやすいようにするために生まれました。日々新しい情報が作られ、届けられる中でより効率的で高速な開発プロセスが必要になり、Djangoが生まれたのです。

また公式ドキュメントによると

”Django は、 1930 年代から 1950 年初頭に活躍した、ジャズの伝説のギタリスト Django Reinhardt にちなんで名付けられました。今日では、Django は史上最高のギタリストの 1 人と評価されています。”

このようにジャズのギタリストの名前をとって、Djangoという名前がつけられたみたいですね。

ちなみに、Djangoは ジャンゴと読みます。ディージャンゴ と読んでしまいがちなので気をつけましょう。

Djangoが使用されているサイトやサービス

Djangoは以下のサービスで現在または過去で使用されています。

  • Google
  • Udemy
  • Pipinterest
  • ワシントンポスト
  • NASA
  • Youtube
  • Instagram

また聞くところによるとトラフィックも多く負荷も多いNetflixもPythonをメイン言語で開発を進めているらしく、Netflix自体がDjangoで開発されているわけではないと思いますが、Pythonを使った他のフレームワークが使用されています。

Djangoが向いているプロダクト

Djangoはセキュリティ機能であったりデータベースやフロントエンドとの連携がかなり優れています。またシステムとしてとても安定した設計がなされています。
そのため、EラーニングやECサイト、Webメディアなどのコンテンツをメインとしたプラットフォーム系プロダクトでもっとも輝くWebフレームワークと言えます。

ただし、現在進行形で多くのDjango開発者が便利なライブラリを開発し、Djangoに組み込まれています。そのため基本的にはあらゆる内容のプロダクトにDjangoを適応させることが可能です。

例えば、django channels というライブラリを使用すると簡単にリアルタイムのチャット機能などを実装することができます。

Djangoの設計思想

最後にDjangoにはいくつかの設計思想がありますが、主なるものとして コードの冗長化を防ぐ、DRY(Don't Repeat Yourself)、明示的に、GETとPOSTを明確に切り分ける といったものがあります。

  • コードの冗長化を防ぐ
    Djangoにはコードの冗長化を防ぐために多くの機能が用意されています。必要な機能はすでに最適なコードで用意されており、読み込むだけで使用できたります。多くの場合、これは1行で完了します。

  • DRY
    あらゆる場面でクラスや機能の継承が行いやすいように設計されているため、同じコードを書かなくても済むようにDjangoを実装することが可能です。また新機能を付け加える際も同じコードが生まれた時、一歩立ち止まって、統一・共通化をできるか考えてみると良いでしょう。

  • 明示的に
    Djangoのデフォルトの機能はほとんどすべて明示的な命名がなされています。例えば、LoginRequiredMixin は その機能が処理されるのにユーザーがログインをしていないと行えないようにする権限関係の機能です。Login Required でそれがどういう機能なのかパッとわかると思います。

  • GETとPOSTを明確に切り分ける
    おそらくDjangoがプログラミングの初学者にも向いている一番の理由がこの思想です。ほとんどすべてのWebサービスがデータベースを必要としています。Web開発をマスターするためにはデータベース処理を理解するのが必要不可欠であり、その際GETとPOSTを明確に理解しておく必要があります。
    DjangoはこのGETとPOSTを明確に切り分けて実装することが必要なため必然的にこの仕組みを理解しながら実装を進めていくことができます。駆け出しエンジニアであってもDjangoから入り、理解することで他の様々なWeb開発手法に適用できるでしょう。

Djangoの現在

Djangoは現在バージョン3.x までアップデートが進んでいます。
2018年はバージョン1, 2019年はバージョン2であったことから見ても急速に開発が進んでいます。これからDjangoを始める人はぜひ最新のバージョン3.x から触っていきましょう。

とはいってもバージョン2と3の違いで気をつけなければいけないことはそんなにないので、バージョン2を既に触っていても問題はありません。

では、次はもう少しDjangoの技術的側面をのぞいていきましょう!