【Python入門】Djangoとは?基礎知識 + 使い方を解説!


Django(ジャンゴ)の特徴や使うメリットがよくわからない……
Django(ジャンゴ)の使い方も知りたいけど、良い情報ないかなぁ……

Django(ジャンゴ)について調べていても学習者向けの記事しかなく、わかりやすく説明しているものが少ないと感じませんか?あまり知られていないDjangoは、初心者向けの情報が少ないんですよね。

DjangoとはPythonでWebアプリを開発する際に使うWebフレームワークというものです。

今回は、Pythonで注目されているWebフレームワークのDjangoについて、初心者にも分かるように専門用語はなるべく使わずに説明していきます!

この記事を読んでいただければ、初心者でもWebフレームワークやDjangoについて理解できるようになりますよ!

この記事の要約
  • DjangoはPythonのWebフレームワーク
  • Djangoを活用すれば効率的にWebアプリが開発できる
  • 本格的なWebアプリ開発には管理サイトやデータベースへの知見が必要なケースもある

なお、1人で学習が進められるか、途中で挫折しないか不安な人は「侍エンジニア」をお試しください。

侍エンジニアでは現役エンジニアと学習コーチの2名体制で学習をサポートするため、挫折しづらい環境で学習が進められます。

受講料が最大70%OFFになる「給付金コース」も提供中。未経験から効率よく学習を進めたい人は、ぜひ一度お試しください。

\ オンラインで相談可能 /

本記事の解説内容に関する補足事項

本記事はプログラミングやWebデザインなど、100種類以上の教材を制作・提供する「侍テラコヤ」、4万5,000名以上の累計指導実績を持つプログラミングスクール「侍エンジニア」、を運営する株式会社SAMURAIが制作しています。

また、当メディア「侍エンジニアブログ」を運営する株式会社SAMURAIは「DX認定取得事業者」に選定されており、プログラミングを中心としたITに関する正確な情報提供に努めております。

記事制作の詳しい流れは「SAMURAI ENGINEER Blogのコンテンツ制作フロー」をご確認ください。

目次

PythonのDjango(ジャンゴ)について知る前に

PythonのWebフレームワークを使うためには、まずPythonとWebフレームワークについて知っておかなければなりません。

そこで、Djangoの紹介をする前に前提として、PythonとWebフレームワークについて解説します。

Pythonとは



Pythonは世界で注目されている人気のプログラミング言語のひとつです。

特に人工知能で使われている技術の機械学習が注目されてから、科学、教育、ゲーム、データ解析などの様々な分野で活用されています。日本でもPythonの仕事も増えてきており、これからも間違いなく伸びていくでしょう。

Webフレームワークとは

Webフレームワークとは、Webアプリ開発をする際に、開発の効率を上げるために便利な機能がたくさん詰まったツールです。

そもそも、フレームワークが様々なシステムの開発を効率化してくれる機能の集まりのことで、そのWeb版ととらえてよいでしょう。

現代の開発では、他社との競争に伴って開発のスピードが求められています。このことからアプリ開発の効率を上げることができるフレームワークの利用はもはや当たり前となっています。

PythonのWebフレームワークはDjango以外にも他に種類があるので次の記事も合わせてご覧いただくといいでしょう。

独学でアプリ開発!具体的な手順や作業を効率化する仕組みも紹介
更新日:2024年3月9日

PythonのDjangoとは



Djangoとは、Pythonで作られているWebフレームワークです。

Djangoを使うことで、高品質なWebアプリケーションを簡単に、少ないコードで作成することができます。シンプルなWebアプリであれば、数分で作ってしまうことも可能です。

また、DjangoではInstagramやPinterestなどのよく知られたWebアプリでも動いています。

PythonのDjangoの特徴

全部入り

Webアプリ開発でよく使われる、「ユーザー認証」「管理画面」「サイトの案内ぺージ」「RSSフィード」など、よく使われる機能はあらかじめ含まれています。

セキュリティが安心

たくさんの共通する脅威に対して対策が施されています。ユーザー認証システムでは、ユーザーのアカウントとパスワードを安全に管理する方法が提供されてします。

拡張性、柔軟性が高い

Djangoで扱う各ファイルは役割が決まっており、別々に切り分けて開発を行うことができます。

よって、それぞれ部品の独立性が高く、拡張することが容易になっています。どんな規模のWEBアプリでも、柔軟に対応できるのです。

用途が広い

Djangoは、会社や組織、そして政府にも利用されています。管理システム、ソーシャルネットワーク、科学技術計算など幅広い用途に対応しています。

PythonのDjangoのメリット

生産性が高く、信頼できる

開発スピードは、「締め切りの味方である完全主義者」のモチーフが掲げられているほどです。アプリ開発ではスケージュル通りにいかず遅れてしまうことも多いのですが、Djangoは締め切りに間に合わせる完全主義者を謳っています。

また、オープンソースなので、世界中の開発者によって日々盛んに改良されており、どんどん使いやすくなっています。先程解説した、InstagramPinterestもDjangoで作られているので、信頼性についても安心して使うことが出来ます。

実用性が高い

現在の開発方法に合致しており、非常に実用的です。Webアプリを新しく開発する際には、まずはじめに「開発にはどれぐらいの期間がかかりそうか」などの情報を得るために、模型を作って試験を行うことが多いです。

この模型を作って試験を行うことをプロトタイプといいます。Djangoはこのプロトタイプを作ることが簡単なので、開発期間を短くすることができるのです。

PythonのDjangoのインストール

Djangoについての概要を知れたところで、ここからは実際にDjangoをインストールしてみましょう!Djangoのインストール前に、まずはPythonの環境を確認する必要があります。Pythonのバージョン確認はこちらのコマンドを実行します。

python -V

2018年現在のPythonの最新版はバージョン3.6.3になります。基本的にPythonが入っていれば大丈夫ですが、古いバージョンではサポートが終了されていることもありますので、できるだけ最新バージョンを入れておきましょう。

Djangoのインストールについては、こちらの記事で詳しく解説しています!

【Django入門】あなたのパソコンにDjangoをインストール!
更新日:2024年3月29日

※バージョン情報が表示されない場合はPythonがインストールされていない可能性がありますので、こちらの記事を参考にインストールしてください。

Pythonのインストール方法をOS別に解説(Windows・Mac・Linux)
更新日:2024年4月10日

【超入門】PythonのDjangoをまずは使ってみよう

ここからは、Djangoを実際に使ってページを作る手順を、以下の流れで解説します。

  • 1.Djangoのインストール確認
  • 2.Djangoの新規プロジェクト作成・画面の確認
  • 3.設定を変更
  • 4.新しいページの作成


1つずつ見ていきましょう。

手順1:Djangoのインストール確認

まずは以下のコマンドを実行して、Djangoのインストールができているか確認してみましょう。

コマンド:

python
import django
print(django.get_version())

正しくインストールされていると、以下のようにバージョンが表示されます。

実行画面:

実行画面

(この例では、3.0.7がバージョンです)

これで確認はOKです!「exit()」コマンドを実行して、いったん閉じましょう。

手順2:Djangoの新規プロジェクト作成・画面の確認

次に、Djangoで新規プロジェクトを作成します。以下のコマンドを実行して、作成しましょう。

コマンド:

django-admin startproject testPj

この例では、「testPj」という名前のプロジェクトを作成しています。コマンドを実行すると、以下のように「testPj」フォルダが作成されます。


testPjフォルダが作成されるイメージ

無事に作成できたか確認するために、一度実行して確認してみましょう。実行するときは、作成したプロジェクトフォルダに移動してから、コマンドを実行します。

cdコマンドで移動:

cd testPj

Djangoプロジェクトを実行:

python manage.py runserver

コマンド実行のイメージ:

コマンドの実行イメージ

上記のようにURLが表示されるので、ブラウザ貼り付けてみましょう。以下のような画面が表示されれば、Djangoでプロジェクト作成ができています。


Djangoの初期ページの表示イメージ

手順3:設定を変更

ここからは、新しいページを作る手順を解説します。まずは、プロジェクトフォルダに「templates」フォルダを新しく作りましょう。

「templates」フォルダは、HTMLファイルを置くところです。


templatesフォルダの作成場所

ちなみにここではtemplatesフォルダのみ作っていますが、画像やCSS(デザインファイル)をおく「static」ファイルを作るのが、一般的です。実際に開発するときは、staticフォルダも作りましょう。

作成できたら、設定ファイルを更新していきましょう。設定ファイルは「settings.py」です。

testPj/testPjの下にあります。まずは言語とタイムゾーンを、変更していきましょう。

変更内容:

LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'

変更箇所:

変更箇所のイメージ

次に、先ほど作成したtemplatesフォルダを、HTMLファイルを置く場所に指定します。

変更内容:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'templates'),
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

変更箇所:

変更箇所のイメージ

これで、設定はOKです。

手順4:新しいページの作成

次に、新しいページを作成していきましょう。今回は、「test.py」ファイルを作成し、以下のコードを入力してください。

新しいページの作成場所:

新しいページの作成場所

サンプルコード:

from django.shortcuts import render

def test(request):
    return render(request, 'test.html')

ここでは、「test.pyファイルが実行されたら、『test.html』を開いてください!」といった内容のコードを書いています。次に、「http://localhost:8000/test/」のURLを開いたときに、「test.py」が実行される設定をしていきましょう。

URLを開いたときに実行される処理は、「urls.py」で管理しています。「urls.py」を開いて、以下のように追記しましょう。

urls.pyの修正後のコード:

from django.contrib import admin
from django.urls import path
from . import test

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test/', test.test, name='test'),
]

変更できたら、HTMLファイルを作成しましょう。templatesフォルダに「test.html」ファイルを作成し、以下のようなサンプルコードを入力します。

test.htmlの場所:

test.htmlの場所

「test.html」ファイルのサンプルコード:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>はじめてのDjangoアプリ</title>
    </head>
    <body>
        <h1>Djangoで新しいページ作成</h1>
    </body>
</html>

入力したら、保存します。保存できたので、コマンドプロンプトを開いて再度実行してみましょう。

実行のコード:

python manage.py runserver

実行後の画面:

実行後の画面

表示されているURLに「/test/」を付けたURL(ここでは「http://localhost:8000/test/」)をつかって、ブラウザで開いてみましょう。次のように画面が表示されれば、OKです。


ブラウザで表示した時のイメージ

これで、新しいページを作ることができました。このように、簡単にページを作ることができます。

ただ、Djangoには色々覚えておくと便利な考え方や、使い方が多いです。まずは以下を見つつ、基礎的な使い方を覚えていきましょう。


【Django入門】templateとHTMLを使ってWebページを表示しよう
更新日:2024年3月1日

【Django入門】viewsを使ってページを表示させよう
更新日:2024年3月1日

Djangoを使いこなすために知っておくべき知識とは?

Djangoで本格的にWeb開発をするときは、以下のような知識も必要となってきます。

  • 管理サイト
  • データベース


それぞれどんなものが作れて、なぜ必要なのか詳しく解説します。

管理サイト

1つ目は、管理サイトです。Webアプリを開発するときは、ユーザーが使う画面以外に、データを管理する画面「管理サイト」を作ります

「でも、データの管理ならプログラムやデータベースを直接操作しても、変更できるのでは?」と思った方もいるかもしれませんね。

管理サイトを用意する理由は、アプリを運営する管理者が、必ずしもプログラミングに詳しいとは限らないからです。プログラミングがわからない人でもデータを管理できるよう、専用の画面を用意するイメージです。

Djangoでは、管理サイトを作りやすくするための機能があります。以下で詳しく解説しているので、ぜひ参考にしてみてくださいね。

【Django入門】adminサイトの作り方からカスタマイズまで!
更新日:2024年3月1日

データベース操作

2つ目は、データベース操作です。アプリ開発をする上では、データを扱うことは必須となります。

そしてデータを扱うときは、データベースを使うのが一般的です。そのため、データベースの操作についても、覚えておきましょう。

データベースそのものの意味については、以下で詳しく解説しているので参考にしてみてください。

データベースとは?導入のメリット・注意点と種類まで徹底解説
更新日:2024年3月8日

Djangoでデータベース操作する基本については、以下で詳しく解説しています。データベースの基礎を見てから、手を動かしながらコードを書いてみるのがおすすめです!

【Django入門】Databaseの使い方
更新日:2024年3月1日

挫折なくDjangoを学ぶなら

Djangoの特徴や活用するメリットを知り「学んでみようかな」と興味が湧いてきた方のなかには

独学で習得できるかな…
途中で挫折したらどうしよう…

と不安な方もいますよね。

実のところ、Djangoといったプログラミング学習で挫折する独学者は多くいます。事実、弊社の調査では

  • 不明点を聞ける環境になかった
  • エラーが解決できなかった
  • モチベーションが続かなかった

などの理由から、87.5%が「プログラミング学習で挫折や行き詰まりを感じた」と回答しています。

87.5%の人がプログラミング学習時に挫折を経験
不明点やエラーが解決できずプログラミングを挫折した人が多数

調査概要:プログラミング学習の挫折に関するアンケート
調査対象:10代〜80代の男女298名
調査期間:2019年8月13日~8月20日
調査方法:インターネット調査
掲載元:PR TIMES

また、こうした背景もあってか、弊社がプログラミングに興味がある人100名へ実施した別の調査では

  • 確実にスキルを身につけられると思ったから
  • 独学では不安がある
  • 効率よく学べそう

などの理由から、61%が「プログラミングの勉強を始めるならスクールを選ぶ」と回答しています。

61%の人がプログラミングの勉強を始めるならスクールが良いと回答
確実にスキルを身につけられそうという理由でプログラミングスクールを選ぶ人が多い

調査概要:プログラミングに興味がある方の意識調査
調査期間:2021/11/19~2021/12/3
対象者:プログラミング学習を検討している10代~50代の男女100名
調査媒体:クラウドワークス
掲載元:PR TIMES

加えて、プログラミングスクールの卒業生に「独学ではなくスクールを活用した理由」を聞いたところ「できるだけ短い期間でITエンジニアへの転職や副業に必要なスキルを身につけたかった」という回答も多く寄せられました。

上記から、1人でプログラミングスキルを習得できるか不安な人や短期間でスキルを習得したい人ほど確実性を求め、現役エンジニアといったプロの講師に質問できるプログラミングスクールを利用する傾向にあるのがわかります。

いざ独学でプログラミングを学び始めても、勉強の最中に挫折しまっては学習にかけた時間を悔やむだけでなく「プログラミングスキルを身につけるのって思っていたよりも難しいんだな…」とDjangoの習得自体を諦めかねません。

仮にわからないことを飛ばしながら勉強を進めたとしても、ITエンジニアへの転職や副業での収入獲得を実現できる実践的なスキルが身につかなければ、結局後悔することになります。

そこで、おすすめしたいのが「SAMURAI ENGINEER(侍エンジニア)」です。

300x300-samuraiengineer (1)
6
700x700_01 (1)
700x700_02
700x700_03
700x700_04
700x700_05
700x700_06
700x700_07
700x700_08
300x300-samuraiengineer (1)
6
700x700_01 (1)
700x700_02
700x700_03
700x700_04
700x700_05
700x700_06
700x700_07
700x700_08
previous arrow
next arrow
料金月分割4.098円~
実績・累計指導実績4万5,000名以上
・受講生の学習完了率98%
・受講生の転職成功率99%

侍エンジニアをおすすめする最大の理由は「挫折しづらい学習環境」にあります。

先ほど述べたとおり、独学者の多くは自力で不明点やエラーを解決できないためにプログラミング学習を挫折しています。そのため、未経験者が現役エンジニアのようなプロに質問や相談できない状況で、プログラミングスキルを習得するのは非常に難易度が高いといえます。

しかし、侍エンジニアでは

  • 現役エンジニア講師によるマンツーマンレッスン
  • 現役エンジニアに質問できるオンラインでのQ&Aサービス
  • 不安や悩み・勉強の進み具合を相談できる学習コーチ

といったサポート体制を整えているため、学習中に出てきたわからないことや不明点をいつでも相談可能です。「受講生の学習完了率98%「転職成功率99%」という実績からも、侍エンジニアなら挫折しづらい環境でプログラミング学習を進められるといえます。

また、侍エンジニアではカウンセリングにて受講生一人ひとりの目的をヒアリングしたうえでカリキュラムを作成するため、限られた受講期間でもITエンジニアへの転職や副業での収入獲得に必要なスキルだけを効率的に習得可能です。

最短距離で目的を実現できるようカリキュラムが組まれているため、勉強する順番や内容を誤り非効率に時間や手間を費やす心配もありません。

なお、ITエンジニアへの転職を見据えPythonやDjangoを学びたい人は受講料の最大70%が給付される「Webエンジニア転職保証コース」や「AIアプリコース」がおすすめです。金銭面での支援を受けつつ、PythonやDjangoの習得から転職活動・就業後のフォローアップ(※1)までを一貫してサポートしてもらえます。

※1:転職後の1年間、転職先での継続的な就業や転職に伴う賃金上昇などのフォローアップ

学習と金銭面をどちらもサポートしてくれる侍エンジニアなら、未経験からでも安心してPythonやDjangoを習得できますよ。

公式サイトで詳細を見る

まとめ

いかがでしたでしょうか?Djangoは非常に有用なWebフレームワークです。使う前には、やはりどんな特徴があるか知ってから学習に入るべきですよね。

今回は、これらのことについて初心者の方でも分かるように専門用語はなるべく使わずに説明させていただきました!

  • Pythonとは何か
  • Djangoとは何か
  • Djangoの特徴とメリット
  • Djangoのインストール方法
  • Djangoで新しいページを作って動かす方法
  • Djangoを使いこなすために知っておくべき知識

この記事であなたも今日からDjangoの学習を取り組むことができます。少しでも興味が湧いてきたのであれば、Django学習の第一歩を踏み出してみては?

ということで、お読みいただきありがとうございました!少しでもあなたの学習のキッカケになってくれれば嬉しいです。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次