Django(ジャンゴ)とは?Pythonで注目のフレームワークを徹底解説

現在、多くのサービスやシステムで「フレームワーク」が使われています。 フレームワークを使うことで、短期間で高品質のシステム開発ができるからです。 今回は、AIなどで注目を集めているPythonのフレームワークである 「Django」 について触れていきたいと思います。

Django(ジャンゴ)はPythonで作られたwebアプリケーションフレームワーク

Django(ジャンゴ)はpythonで作られたwebアプリケーションフレームワーク

Django(ジャンゴ)はpythonで作られたwebアプリケーションフレームワーク[/caption] Djangoは、Pythonで作られたwebアプリケーションフレームワークです。 Djangoの解説の前に、Python、webアプリケーションフレームワークについて簡単に解説します。

Pythonとは

Pythonは、プログラミング言語のひとつです。 Pythonが使われる開発は、 ・webアプリケーション ・AI ・ブロックチェーン ・スマホアプリのバックエンド など 汎用性の高さ、新しい技術に用いられている、学びやすい言語であることから注目を浴びています。

webアプリケーションフレームワークとは

フレームワークは、プログラムを作る際に使われるツールです。 ・モジュール ・ライブラリ ・テキストファイル ・htmlファイル などで構成されています。 フレームワーク特有のコードを習得する必要がありますが、使用すると0からプログラムを書く必要がなくなり、アプリケーションの開発の工期を大幅に短縮できます。 フレームワークのうち、webアプリケーションの開発の際に使用されるのが、webアプリケーションフレームワークです。

Djangoの特徴

Djangoの特徴

Djangoの特徴[/caption] Pythonで使用されているフレームワークはいくつかあります。 その中でもDjangoは、特に市場価値が高いフレームワークです。 なぜDjangoの市場価値が高いのかについて、解説します。

Djangoとは

Djangoはもともと、ニュースサイトの管理のために開発されたオープンソースのフレームワークで、2005年に公開されました。 開発された目的は、webサイトの構築を簡易にすることです。 現在では、 ・Ruby on Rails(Ruby) ・Laravel(PHP) と並んで注目度の高いフレームワークのひとつです。 Google検索、Youtube、instagram、Dropbox、日経電子版など有名なサイトで使用されており、今後活用の幅がさらに広がる可能性が高いフレームワークです。 使用しているエンジニアからは、 「汎用性が高く、実現できる物の幅が広い」 「機械学習・データ分析に強く、今後の成長が期待できる」 「アプリにAIを利用したいから使いたい」 「自分のスキルアピールにつながる」 などの高い評価を受けています。

他のフレームワークと比較したDjangoの特徴

Pythonで使用されるフレームワークにはDjangoのほかにも、FlaskやBottleなど有名なものがあります。 他のフレームワークと比較した、Djangoの特徴について解説します。

フルスタック

FlaskやBottleが必要最低限の機能を有しているフレームワークであることに比べ、Djangoはフルスタックのフレームワークと言われています。 FlaskやBottleでは、それ単体でwebサイトに必要な機能が充分ではないことがあるのです。 そのため、特定の機能を使えるようにする際には、モジュールを探す必要があります。 一方でDjangoには、webアプリケーションの開発に必要な機能がひととおり備わっているため、モジュールを探す手間が省略できます。

MTV

Djangoには、MTV(Model、Template、View)が採用されています。 MTVは、それぞれ Model:データベースとやりとりする場所 Template:htmlを表示する場所 View:Modelからの情報の取得、情報の見せ方を決定、Templateへデータを送る 役割をしています。 Ruby on Rails、PHPのLaravelで採用されているMVCと非常に似た仕組みです。 処理が分割されているため開発しやすいことや、開発チームごとの作業がしやすいなどのメリットがあります。 例えば、 ・サーバーサイドの処理は書けるけど、デザインが出来ないエンジニア ・HTML/CSS/JSなど、デザイン部分は出来るが、SQLがわからないエンジニア こういった得意分野の違うエンジニアが1つのシステムを触る際に、MTVやMVCは非常に効果的です。 それぞれ機能毎にファイルが分かれているため、直接同じファイルを複数人が触る事が稀です。 結果として、マージしようとした時にコンフリクトが起きる可能性が低くなり、管理がしやすくなります。

セキュリティ性能が高い

Djangoは、多くのセキュリティ対策を備えています。 具体的には、 ・PWをハッシュ化して保存 ・クロスサイトスクリプティング対策 ・クロスサイトリクエストフォージェリの保護 ・SQLインジェクション対策 ・クリックジャックの保護 などの機能があります。 これらの機能は、特にECサイトなどの個人情報を多数扱うシステムや、業務システムなどでは非常に重要になります。 最近は業務用のシステムもクラウドサービスとしてリリースすることが多く、Djangoのこれらの機能は非常に重宝されます。

サイズが大きい

フルスタックのフレームワークであるため、他のフレームワークと比較するとデータのサイズが大きいです。 フォルダ数は2,400以上、ファイル数は4,100以上、容量は47MB以上あります。

Djangoの機能を使って効率的にできること

Djangoがフルスタックと呼ばれているのは、Djangoを使用することで効率的に進められる作業がたくさんあるからです。 具体的には、 ・管理画面の作成 ・ユーザー認証機能:django-allauthパッケージ ・サイト案内ページの作成 ・RSSフィードの作成:Feedモジュール ・静的ファイルの公開 ・キャッシュ機能の作成:cacheモジュール ・ログ機能の作成:logingモジュール ・XMLサイトマップの作成:「sitemap」モジュール などの作業です。

Djangoを使うメリット

Djangoを使うメリット

Djangoを使うメリット[/caption] Djangoが多く使われているのは、フルスタックであることやセキュリティ性能が高いなどの機能面のメリット以外にも大きいメリットがあるからです。 機能面以外の、Djangoを使うメリットについて解説します。

求人が多い

Djangoを使った開発などの求人は、他のPythonフレームワークでの求人よりも案件が多いです。 indeedで検索すると、Flaskの約3倍、Bottleの約1,500倍の求人があります。 これは、MTVで開発が行われるため開発がしやすい、認知度が高い、すでにDjangoで開発されたプログラムが多い、などが理由だと推察されます。 pythonはAIやブロックチェーンなどの開発で使用されているため、今後Djangoの需要もさらに大きくなるものと予想されます。

情報が多い

ここ数年で、Djangoを使用するエンジニアや案件が増加し、それに合わせて現在ではネット上や書籍などDjangoに関する情報が充実しています。 エンジニアとして仕事をするうえで、分からないことや、うまくいかないことがあった場合に調べる方法があることは仕事上の大きなメリットです。

Djangoを利用するデメリット

Djangoを利用するデメリット

Djangoを利用するデメリット[/caption] Djangoにはメリットだけではなく、デメリットもあります。 Djangoのデメリットについて解説します。

習得に時間がかかる

フルスタックで機能が多いため、習得には時間がかかります。 学習に時間を割くことができない方は、FlaskやBottleなどの軽量なフレームワークを学習した方が良いでしょう。 ただし、注目度が高いフレームワークであるため、ネットの情報、書籍のほか、オンラインで学習できる講座も複数あるので、効率的に学ぶ方法はあります。 また、前述したように求人数的にもDjangoは他のPythonフレームワークに比べると多いです。 そのため、長期的にエンジニアとして働くことを考えると、Djangoの習得は時間をかけてでも行うべきでしょう。

レスポンスが比較的遅い

フルスタックで多くの機能を持っているため、他の軽量なフレームワークと比較するとレスポンスが遅いです。 機能要件に処理速度の速さがある場合は、DjangoよりもFlaskやBottleでの開発が向いています。

Djangoの導入方法

Djangoの導入方法

Djangoの導入方法[/caption] Djangoはオープンソースのフレームワークのため、PCがあれば誰でもすぐに導入することができます。 Djangoの導入方法について解説します。

仮想環境を作成

Djangoを使った作業を行う場合、まずは仮想環境を作成する必要があります。 Pythonを使ったプロジェクトは、常に同じバージョンのPythonを使用する必要があります。 そのため、複数のバージョンのPythonを管理しなければいけません。 仮想環境を作ると、その中に必要なバージョンのPythonをインストールしプロジェクトを管理できます。 仮想環境を作成するソフトウェアはいくつかあります。 おすすめは、Python公式のvenvです。 python3.4以降には、標準で搭載されており、 1 python -m venv <仮想環境名> 2 bin(Script)に移動 3 activateを実行 の手順で、簡単に仮想環境を作成できます。

Pythonをインストール

Djangoをインストールする前に、Pythonのインストールをする必要があります。 Pythonは、Python公式のHPからインストールができます。 Python公式HP:https://www.python.org/ 公式HPを開き、Downloadsを選択するとWindows、macOSが選べるので使用するPCに適したものを選択してください。 ちなみに、macにははじめからPythonがインストールされています。 しかし、インストールされているのは、古いmac OS用のソフトウェアとの互換性を持たせるため、古いバージョンのPythonです。 ターミナルを起動して、 python –version と入力すると、インストールされているバージョンが分かります。 古いバージョンはサポートがされていないので、新しいプロジェクトを立ち上げる場合は、仮想環境に新しいバージョンのPythonをインストールした方が良いでしょう。

Djangoをインストール

Djangoのインストールは、簡単です。 windowsの場合、PowerShellに C:> py -m pip install Django macの場合、ターミナルに $ pip install django と入力すると最新バージョンのDjangoがインストールされます。 なお、Djangoのバージョンを指定する場合は、それぞれ C:> py -m pip install Django==4.0 $ pip install django==4.0 のように、入力すれば必要なバージョンがインストールされます。

特定のフレームワークエンジニアを探しているならAMELAに

特定のフレームワークエンジニアを探しているならAMELAに

特定のフレームワークエンジニアを探しているならAMELAに[/caption] 今回は、非常に人気の言語PythonのフレームワークであるDjangoについて見てきました。 今の時代、フレームワークも進化してきているので、プログラミングの未経験だったとしても、簡単にシステム開発が出来るようになってきました。 一方で、エンジニアの質自体の格差も拡がっていると感じています。 例えば、フレームワークがまだあまり浸透していなかった頃のエンジニアは、細かい設定や仕組みについても知らなければいけませんでした。 しかし、最近のエンジニアは 「細かい部分は知らなくても勝手にフレームワークがやってくれている」 という事が多いです。 そうなると、仕様を知らないまま実装してしまったり、理解していないのに使っていて、後から大きなトラブルになる可能性もあります。 特にエンジニア歴の浅い人や、特定の案件ばかりをやってきたようなエンジニアは、IT全般の知識に欠けることも多いです。 そのため、もしもエンジニアを採用しようと考えている場合には、注意が必要でしょう。 AMELAでは、高い技術力を持ったエンジニアが多数在籍しています。 「この言語のこのフレームワークを使える人を探している」 そういったお話があれば、是非相談いただければと思います。