photo
photo
  1. トップ
  2. システム開発
  3. Django(ジャンゴ)とは?Pythonのフレームワークを活用し、Web開発に役立てよう

Django(ジャンゴ)とは?Pythonのフレームワークを活用し、Web開発に役立てよう

『Django』とは、Webアプリケーションフレームワークの一つです。様々な機能を搭載していて、簡単なWebアプリケーションであれば、ものの数分で完成できることもあります。

今回は、Djangoの概要やメリット、インストール方法、チュートリアルの実施方法についてお伝えします。

Django(ジャンゴ)とは?

Djangoは『ジャンゴ』と読み、Pythonで実装されたWebアプリケーションフレームワークです。無料のオープンソースとして公開されています。

フレームワークとは、アプリケーションを開発する際によく使われる機能がまとまったソフトウェアのことです。フレームワークを導入することで、幅広くWebアプリケーションの開発に対応でき、効率よく開発を進めていけます。

Djangoを使えば、コンテンツ管理システムやWikiからソーシャルネットワーク、ニュースサイトなど、高品質なWebアプリケーションを簡単に、少ないコードで作成できます。シンプルなWebアプリケーションであれば、数分間で作れてしまう場合もあります。もちろん、機能を拡張して複雑なWebアプリケーションを作成することもできます。

また、Djangoは、InstagramやPinterest、Mozilla、National Geographicなどのよく知られたWebアプリでも使われています。まさに、注目のフレームワークといえるでしょう。

なお、Pythonについては、Pythonの特徴や使い方を解説した記事を用意していますので、併せてご覧ください。

Djangoを使うメリットは何?

開発時にDjangoを使用すると、次のようなメリットがあります。

  • 高速な動作
  • フルスタック・フレームワーク(多数の便利な機能を装備)
  • セキュリティ的に安全な設計
  • メンテナンスの容易さ
  • 自由に選べるプラットフォーム
  • 学習コストの低さ

それぞれ順番にみていきましょう。

高速な動作

Djangoには標準で、分散型のキャッシュシステムであるmemcachedが備えられており、キャッシュ機能が強力です。高速な処理速度が要求される大規模サービスなどでは、Djangoは有力な選択肢になります。

フルスタック・フレームワーク(多数の便利な機能を装備している)

Djangoはフルスタックのフレームワークです。

フルスタックとは、Webアプリケーションの実装に必要な機能が一通り揃っていることを指します。Webアプリでよく使われる「ユーザー認証」「管理画面」「サイト案内」「RSSフィード」などの機能が、あらかじめ含まれています。

つまり、Djangoを使用すれば、テンプレートやDBアクセスに使うソフトなどを自分で探す必要がなくなります。なお、DjangoだけでもWebアプリケーションを構築するには十分ですが、拡張するモジュールも用意されています。

そのため、管理システム、ソーシャルネットワーク、科学技術計算など幅広い用途に対応しているのです。

強固なセキュリティ
セキュリティ的に安全な設計

InstagramやPinterest、Mozilla、National Geographicなどの大規模サイトがDjangoを選択する理由の一つは、セキュリティの信頼性でしょう。Djangoでは、一般的な設計上のセキュリティミスが起こりにくい仕組みを採用しています。仕組みの内容は、次のようなものです。

  • セッション情報の配置場所

クッキーにはセッションキーだけを記憶させ、セッションデータ自体はサーバのデータベースに保存する。

  • パスワードを直接保存しない

パスワードはハッシュ化し、データベースに格納します。Djangoでは、送信されたパスワードから暗号化ハッシュ関数を介して生成された固定の値(ハッシュ値)を保存することにより、パスワードを安全に管理します。入力されたパスワードは、ハッシュ関数を介した入力値と、保存されたハッシュ値を比較することでチェックされます。

その他にも、Djangoは、SQLインジェクション、クロスサイトスクリプティング(XSS)、クロスサイトリクエストフォージェリ(CSRF)、クリックジャッキングなどの多くの脆弱性に対する保護を有効にしています。

メンテナンスの容易さ

Djangoはモジュールの独立性が高く、メンテナンスや拡張が容易になるようにできています。

Djangoのコードは、原則として保守可能で再利用可能。特に、Do not Repeat Yourself(DRY)則によって、コードの再利用は基本コンセプトになっています。Djangoは、関連する機能・コードを再利用可能なアプリケーションやモジュールにグループ化します。

自由に選べるプラットフォーム

DjangoのコードはPythonで書かれています。Pythonは非常に多くのプラットフォームで動作する言語です。そのため、Djangoで作られたアプリケーションは、Linux、Windows、macOS Xなどのメジャーなプラットフォームで実行できます。

さらに、Djangoは多くのホスティングプロバイダによってサポートされており、Djangoサイトを特定のインフラでホスティングするためにドキュメントを提供しているところもあります。

学習コストの低さ

DjangoはメジャーなWebアプリケーションのフレームワークなので、インターネット上に様々なノウハウが溢れています。

さらに、オンラインの学習プラットフォームなどでも複数の学習プログラムが展開されているため、学習の機会には事欠きません。

 

Djangoでできることとは?

Djangoを使用するとできることは、例えば次のようなものがあります。

  • 管理画面
  • ユーザー認証
  • RSSフィード
  • テンプレートエンジン
  • データベース(O/Rマッパー)
  • フォームの作成・検証・処理
  • キャッシュ機能

Webアプリケーションでよくある定番の画面は、Djangoに任せてスピーディに作れます。開発者は、そのほかの重視したい機能に時間を注げるので、開発スピードが向上するでしょう。

Pythonの別のフレームワークとしてFlaskがあります。Flaskについては解説した記事がありますので、併せてお読みください。

 

実際にDjangoをインストールしてみよう

それでは、実際にDjangoをインストールしてみましょう。

まずはPythonをインストールしていきます。説明に用いた環境はWindows10です。Windows10のOSは64bitですが、Pythonは32bit版がインストールされます。

Pythonをインストール

1、Pythonのサイトにアクセスし、最新のPythonをダウンロード

以下のURLにアクセスします。

https://www.python.org/downloads/

2020年4月5日現在、Pythonの最新バージョンは3.8.2です。

2、「Download Python 3.8.2」ボタンをクリックします。

「python-3.8.2.exe」がダウンロードされます。

Djangoのダウンロード画面
3、インストールを実行

必ず「Add Python 3.8 to Path」を選択し、チェックが入ったことを確認してから、「Install Now」をクリックします。

Djangoをインストール

Pythonのインストールが開始されます。

Djangoのインストール状況

正常にインストールが完了すると、インストール完了のメッセージが表示されます。

利用の手順について説明のあるサイトへのリンクが、online tutorialとして表示されています。また、ドキュメントのリンクもdocumentとして表示されています。必要に応じて確認しましょう。

「Close」をクリックして、セットアップ画面を閉じます。

Djangoのインストール完了
4、正常にPythonがインストールされたか確認する

デスクトップ右下の虫眼鏡マークをクリックして「cmd」と入力します。

コマンドプロンプトを起動

検索結果として「コマンドプロンプト」が出てくるので、ダブルクリックします。

続いて、表示されたコマンドプロンプトにて

>python --version

とキーボードで入力し、Enterキーを押しましょう。

Python 3.8.2

と出力されれば、正常にPythonがインストールされています。

続いてDjangoをインストールしていきます。

Djangoをインストール

5、pipをインストールする

pipとは、各種パッケージのインストールを簡単にするツールです。Djangoのインストールを簡単にするため、先にインストールしていきます。

先ほどのPythonのインストール時と同様に、デスクトップの右下の虫眼鏡ボタンから「cmd」と入力してコマンドプロンプトを起動し、

>curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

と入力してEnterキーを押しましょう。次のようなメッセージが出力され、コマンドプロンプトのフォルダに「get-pip.py」がダウンロードされてきます。

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1764k  100 1764k    0     0  1764k      0  0:00:01 --:--:--  0:00:01 5942k

デフォルトだとコマンドプロンプト表示時のフォルダは「C:\Users\[ユーザー名]」ですから、「get-pip.py」も「C:\Users\[ユーザー名]」の中にダウンロードされます。

続いて、下記コマンドをコマンドプロンプトに入力してEnterキーを押します。

>python get-pip.py

すると次のようなメッセージが表示され、pipがインストールされます。最後に「Successfully installed…」と表示されていればpipのインストールは完了です。

Collecting pip
  Downloading pip-20.0.2-py2.py3-none-any.whl (1.4 MB)
     |████████████████████████████████| 1.4 MB 2.2 MB/s
Collecting wheel
  Downloading wheel-0.34.2-py2.py3-none-any.whl (26 kB)
Installing collected packages: pip, wheel
  Attempting uninstall: pip
    Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
      Successfully uninstalled pip-19.2.3
Successfully installed pip-20.0.2 wheel-0.34.2

6、virtualenvをインストールする

virtualenvは仮想環境を動かすためのソフトウェアです。今回はDjangoを仮想環境で動かします。

コマンドプロンプトにて次のコマンドを入力し、Enterキーを押します。

>pip install virtualenv

すると次のメッセージが出力されて、virtualenvがインストールされます。

Collecting virtualenv
  Downloading virtualenv-20.0.16-py2.py3-none-any.whl (4.6 MB)
     |████████████████████████████████| 4.6 MB 3.3 MB/s
Collecting filelock<4,>=3.0.0
  Downloading filelock-3.0.12-py3-none-any.whl (7.6 kB)
Collecting appdirs<2,>=1.4.3
  Downloading appdirs-1.4.3-py2.py3-none-any.whl (12 kB)
Collecting distlib<1,>=0.3.0
  Downloading distlib-0.3.0.zip (571 kB)
     |████████████████████████████████| 571 kB 2.2 MB/s
Collecting six<2,>=1.9.0
  Downloading six-1.14.0-py2.py3-none-any.whl (10 kB)
Building wheels for collected packages: distlib
  Building wheel for distlib (setup.py) ... done
  Created wheel for distlib: filename=distlib-0.3.0-py3-none-any.whl size=340432 sha256=64e1a9b4e6c74b868e0ce0d1b8ccc4d2190b74d283486fcedc59a9b88771a366
  Stored in directory: c:\users\[ユーザー名]\appdata\local\pip\cache\wheels\eb\4e\d2\a903d4184fb49e4ac06474d65715b129aee13d69f7d227e78e
Successfully built distlib
Installing collected packages: filelock, appdirs, distlib, six, virtualenv
Successfully installed appdirs-1.4.3 distlib-0.3.0 filelock-3.0.12 six-1.14.0 virtualenv-20.0.16

7、仮想環境を作成する

最初に「C:\」の配下に「Python」というフォルダを作成しておきます。

仮想フォルダの作成

今回はこの「C:\Python」の配下に仮想環境を作成します。

コマンドプロンプトを開いて次のコマンドを入力し、Enterキーを押します。

>cd C:\Python

先ほど作成した「C:\Python」のフォルダに移動できます。

続いて、次のコマンドを入力してEnterキーを押します。

>virtualenv env1

すると、次のメッセージが出力され、仮想環境が作成されます。

created virtual environment CPython3.8.2.final.0-32 in 5615ms
  creator CPython3Windows(dest=C:\Python\env1, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=C:\Users\[ユーザー名]\AppData\Local\pypa\virtualenv\seed-app-data\v1.0.1)
  activators BashActivator,BatchActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

続いて、次のコマンドを打ってEnterキーを押し、「env1」フォルダに移動します。

>cd env1

そのまま次のコマンドを実行して、仮想環境を有効化します。

>activate

すると、下記のように「(env1)」がプロンプトに追加されます

(env1) C:\Python\env1>

8、Djangoをインストールする

それでは、いよいよDjangoをインストールしていきます。

まずは、コマンドプロンプトが次のようになっていることを確認しましょう。

(env1) C:\Python\env1>

確認できたら、下記コマンドを入力し、Enterキーを押します。

pip install django

これまでのpipのソフトウェアインストール時と同様に次のメッセージが出力され、Djangoがインストールされます。

Collecting django
  Downloading Django-3.0.5-py3-none-any.whl (7.5 MB)
     |████████████████████████████████| 7.5 MB 279 kB/s
Collecting sqlparse>=0.2.2
  Downloading sqlparse-0.3.1-py2.py3-none-any.whl (40 kB)
     |████████████████████████████████| 40 kB 51 kB/s
Collecting pytz
  Downloading pytz-2019.3-py2.py3-none-any.whl (509 kB)
     |████████████████████████████████| 509 kB ...
Collecting asgiref~=3.2
  Downloading asgiref-3.2.7-py2.py3-none-any.whl (19 kB)
Installing collected packages: sqlparse, pytz, asgiref, django
Successfully installed asgiref-3.2.7 django-3.0.5 pytz-2019.3 sqlparse-0.3.1

9、Djangoが正常にインストールされたことの確認

Djangoが正常にインストールされていることを確認できるのは、次のコマンドです。

>Pip freeze

正常に入力されていると、下記のようにDjangoその他関連ソフトウェアのバージョン情報が出力されます。

asgiref==3.2.7
Django==3.0.5
pytz==2019.3
sqlparse==0.3.1

ここまで来たら下記コマンドを入力して、一旦コマンドプロンプトから抜けます。

>exit

10、Djangoの動作確認

続いてDjangoが正常に動作することを確認します。

再度デスクトップ右下の虫眼鏡マークから「cmd」と検索し、コマンドプロンプトをダブルクリックで立ち上げます。

コマンドプロンプトが表示されたら、下記コマンドを入力してEnterキーを押します。

>cd c:\Python\env1

「c:\Python\env1」に移動できます。

続いて、次のコマンドをコマンドプロンプトで入力してEnterキーを押し、Pythonを起動します。

>python

Pythonのプロンプトが立ち上がったら、Djangoをインポートします。

次のコマンドをそれぞれ入力して、1行ごとにEnterキーを押します。

>import django
>print(django.get_version())

次のような形でDjangoのバージョン情報が出力されれば、Djangoが無事動作していることの確認完了です。

3.0.5

最後に、公式チュートリアルにチャレンジしましょう。

チュートリアルにチャレンジ

今回は「はじめてのDjangoアプリ作成 その1」の開発用サーバを動かすところまでやってみます。

11、プロジェクトの作成

デスクトップ右下の虫眼鏡アイコンで「cmd」と検索し、コマンドプロンプトをダブルクリックで立ち上げます。

その後、コマンドプロンプトで下記コマンドを入力し、Enterキーを押します。

>cd C:\Python\env1\

「C:\Python\env1\」に移動できるので、仮想環境を有効化します。

>activate

続いて、下記コマンドを入力し、Enterキーを押します。

>django-admin startproject mysite

env1配下に「mysite」フォルダが作成されます。mysiteフォルダの中身については、公式チュートリアルに詳細な説明があるので、必要に応じて確認しましょう。

続いてmysiteフォルダに移動します。

>cd mysite

12、開発用サーバの起動

開発用サーバを動かしてみます。

>python manage.py runserver

すると、次のメッセージが表示され、開発用サーバが起動します。

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
April 06, 2020 - 22:43:01
Django version 3.0.5, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

13、開発用サーバにアクセス

Webブラウザを起動して、下記URLをアドレスバーに入力してアクセスしてみましょう。

http://127.0.0.1:8000/

「The install worked successfully! Congratulations!」の文字列とともに、ロケットの絵が出てきたら成功です。

これで、自分用の開発環境が立ち上がりました。引き続き公式チュートリアルを読み進め、内容を実行してみましょう。

 

今回は、実際にDjangoをインストールして、開発用サーバの立ち上げまでを実施してみました。

Djangoは開発用サーバの立ち上げまでに、ある程度の操作が必要です。しかし、一旦環境を作ってしまえば、豊富な機能を使ってWebアプリケーションを短期間で構築してしまうことも可能です。

現にチュートリアルでは、簡単な投票Webアプリケーションの構築手順が公開されています。

Djangoについての無料の学習サイトや、日本語の入門書もあります。Django入門したい!という方は、この記事を参考に、ぜひトライしてみてください。

エンジニアに役立つ目的別講座

Pythonの基本~応用をマスター

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

現役シリコンバレーエンジニアが教えるPython入門講座。Python3の基本を取得できます。

Webサイトのコーディングができるように

ウェブ開発入門完全攻略コース - プログラミング をはじめて学び創れる人へ!未経験から現場で使える開発スキルを習得!
ウェブ開発入門完全攻略コース - プログラミング をはじめて学び創れる人へ!未経験から現場で使える開発スキルを習得!

HTML, CSS, Bootstrap, JavaScript, MySQL, Ruby, Ruby on Rails, AWS Cloud9, Git, GitHubを用いたWebアプリケーション開発の方法を総合的に学べます。

AWSを基礎から学ぶ

これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)
これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)

AWSの基本資格「AWS 認定ソリューションアーキテクト – アソシエイト試験」を合格を目指し、そのための知識や経験を獲得できるように!

オリジナルのウェブサイトを作ろう

WordPress開発マスター講座
WordPress開発マスター講座

WordPressのカスタマイズ手法を身につけ、自身のサイト構築や開発案件の受託などを目指しましょう。