【初心者必見】Djangoって一体何?実行の手順・理解のコツを図解でわかりやすく解説します♪【Python】

header9

まず初めに

みなさん、こんにちは。はねすけと申します。

今回のテーマはざっくりというと「PythonのフレームワークであるDjangoの仕組み」です。

機械学習などに適した言語として有名な言語であるPython。
そのPythonにおける開発補助となるフレームワークの1つに「Django」というものがあります。
ちなみに読み方ですが、「D」は発音せずに「ジャンゴ」だったりします。

Djangoは非常に便利で、本格的なシステムを作成することもできる優秀なフレームワークだと思います。
今回は自分自身の復習もかねて、初学者~中級者向けにDjangoの開発構成に関するまとめをご紹介したいと思います。

それでは早速行ってみましょう!

こんな方はぜひ読んでみてくださいね

・Djangoをこれから始めて使ってみたい方

・まずはDjangoの全体像をざっくりと把握してみたい方

基礎情報整理

python

まずは情報整理のために、今回関連してくる各キーワードの整理から行っていきます。

最初は「python」からです。
pythonとはざっくりというと、「クリーンで読みやすい構文が特徴な汎用的なプログラミング言語」です。
近年では機械学習の需要の高まりにより、コミュニティも活発で世界的にも人気なプログラミング言語の1つですね。
非常にシンプルで理解しやすい構文で書くことができたり、多種多様なライブラリ機能がすでに存在しているのも開発者にとっては有難いですね。

そんな最近もてはやされているpythonではありますが、意外とその歴史は古くなんと1980年代に生まれたプログラミング言語なのです。
pythonのバージョンとしては2系と3系の2種類が存在します。3系の方が新しく、2系についてはすでに公式のサポートが終了していることもあり、使用しないことをお勧めします
今後もさらに新しいバージョンがリリースされ続けると思います。どんな機能が新しく追加されるかとても楽しみですね。

私が最初にpythonを使おうと思ったきっかけは、機械学習に対しての興味があったからでした。

最初に使ってみての感想は、「ほかのプログラミング言語と比較してとてもスッキリかけるな」というものでした。
直感的に書いていけるので、初心者の方でもわかりやすい部類の言語ではないでしょうか。

以降、仕事であったり個人のアプリ開発であったりと幅広い場面でお世話になっています。
そんな魅力がいっぱいのpython。まだ使ったことがないという方は、まずはぜひ公式サイトよりpythonをインストールしてその使いやすさ・面白さを体験してみてくださいね。

フレームワーク

次にご紹介するのは「フレームワーク」です。
日本語でいうと「枠組み」となる言葉ですが、その名前の通りシステム開発を行っていく上での基礎的な構造や骨組みになる構成を提供してくれるものです。

例えば「python フレームワーク」で検索してみてもらえばわかるのですが、非常にたくさんのフレームワークがあることがわかります。
どんなシステムを作りたいのか・重要な要件は何かを明確にさせ、最適なフレームワークを選択することで、開発を効率的に進めることができます。

システムエンジニアとして開発を行う際には、ほぼ確実に何らかのフレームワークを使用します。
そうでないとディレクトリ構成やら基本的な設定やら事前に準備しなければならず、要する時間は非常に大きくなってしまいます。
様々なフレームワークがありますので、違いを比較してみるだけでも面白いですよ。

Django

最後にご紹介するのは、今回の主役でもある「Django」です。
Djangoとはpythonにおけるフルスタックフレームワークの1つです。

フルスタックというのは、簡単に言うと機能が豊富ということです。
Django1つでデータベース接続や認証機能(ログインなど)を簡単に実装することができたりと、機能がモリモリになっているフレームワークということですね。(その分サイズが大きく速度が遅めだったりするのですが…

先ほどもお伝えしましたが、Django以外にもpythonには様々なフレームワークが存在しています。
しかし、様々なケースに柔軟に対応できるという意味で、最初にDjangoを選択するというのは非常に有効な選択になります。

以下が公式サイトになります。どんどんと新しい機能が追加されますので、気になる方は小まめにチェックしてみてくださいね。

最初のアプリを立ち上げるまでの手順

手順① 必要ライブラリのインストール

まず大前提となりますが、「python」をご自身の端末に前もってインストールをしておきましょう
ここでは詳細を割愛しますが、「python インストール」などで検索すれば無数にインストール手順をみつけられますので、忘れずにやっておきましょう。

初心者の頃はわかりにくいかもしれませんが、プログラミング言語自体もPCにインストールしなければ使用できないものが大半です。

ちなみにですが、端末にpythonがインストールされているどうかについては以下のコマンドで確認できます。
こちらはpythonのバージョンを確認するコマンドです。
インストールされていればpythonのバージョンが表示されますので、それでインストール済みかの判断が可能です。
※以下に端末がWindowsの場合の手順も記載しますので、参考にしてください。

Command Line
python --version
tezhun1-1
①キーボードで「windowsキー+Rキー」を押して、「ファイル名を指定して実行」ウィンドウを開いてください。
②「名前」欄に「cmd」と入力してください。
tezhun1-2
③上記のようなCommand Line画面が開きますので、上記のコマンド「python –version」を入力・実行してください。
④インストール済みであれば赤枠のようにpythonのバージョンが表示されます。

pythonのインストールが問題なければ、次に今回使用するライブラリである「Django」をインストールしていきましょう。
pythonのインストールとは異なり、以下のコマンドを実行するだけで簡単にインストールができます。

Command Line
pip install django
tezhun1-3
⑤先ほど開いたCommand Line上で上画像のように「pip install django」と入力・実行してください。
 ※ちなみに上画像で「==3.0」とあるように、インストール時にライブラリのバージョンを指定することもできます。
⑥インストールが無事成功すると「Successfully installed django」という文言が表示されるはずです。

手順② プロジェクトを作成

インストールができましたら、次に「プロジェクト」の作成に入っていきます。
プロジェクトとは、アプリの入れ物と考えてもらうとわかりやすいです。その中にこれからアプリに必要なものをどんどんいれていくための箱をつくっていくわけですね。

プロジェクトを作成するコマンドは以下の通りです。
併せて「testApp」というプロジェクトを作成する例を掲載しますので、参考にしてください。

Command Line
django-admin startproject プロジェクト名 .
tezhun2-1
①プロジェクトを作成したいディレクトリにてCommand Lineを起動しましょう。
 上記のようにプロジェクトを作成したいディレクトのパス表示部分をクリックしてください。
tezhun2-2
②クリックしたら「cmd」と入力・実行してください。
tezhun2-3
③その場所でのCommand Lineが起動しますので、「testApp」プロジェクトを作成するため「django-admin startproject testApp .」コマンドを入力・実行してください。
tezhun2-4
④特に何もメッセージは表示されませんが、ディレクトリに戻ると上画像のように「testApp」フォルダと「manage.py」ファイルが作成されているはずです。

手順③ 基礎情報をデータベースに作成

無事プロジェクトが作成できたら、次に基礎情報をデータベースに作成しましょう。
どんなデータベースを使うかなど、細かい設定をカスタマイズすることももちろん可能です。しかし今はひとまずデフォルトの状態で作成していきます。

実行するのは以下のコマンドです。

Command Line
python manage.py migrate
tezhun3-1
① 手順②で開いたCommand Line上で「python manage.py migrate」を入力・実行します。
 上画像のようにつらつらと実行結果が表示されていますが、最終的に何のエラーが表示されなければ成功です。

手順④ アプリを起動!

ここまで来たらあとはアプリを起動するだけです!
CommandLine上で以下のコマンドを実行した状態で、ブラウザからアクセスしてみてください。
ローカル環境であれば「http://127.0.0.1:8000/」のアドレスで接続が可能です。

Command Line
python manage.py runserver
tezhun4-1
① 手順②で開いたCommand Line上で「python manage.py runserver」を入力・実行します。
上記のように、末尾に「Quit the server with CTRL-BREAK.」と表記されていれば起動成功です。
※サーバを停止するには「Ctrlキー+Cキー」を実行してください。
tezhun4-2
②ブラウザで上画像のようなページが表示されれば、初期状態での起動が成功したことになります。
 おめでとうございます!あとは目的に応じて様々な開発を進めていただくことが可能です。

全体構成振り返り+α

まずは構成を整理してみましょう

Djangoに限った話ではありませんが、システムは様々なファイルの集合によって構成されています。

とは言ったもののDjangoをざっくりと大まかな構成で見たときには、①models.pyファイル・②urls.pyファイル・③views.pyファイル・④htmlファイルの4つが軸となってきます。
それぞれのファイルの役割は以下のようになります。

当然の話ではありますが、開発を進めていくとさらに細かい要素・ファイルが多数登場してきます。

しかし、主にこれら4つのファイルの連携によってDjangoのWebアプリケーションは構成されています。
故に、新たにページを増やす場合などは基本的にこの連携に処理をそれぞれ追加していくことで実現することができます。

最低限この一連の流れだけ抑えておけば、Djangoを使用して様々なアプリケーション構築することができるでしょう。

models.py…データベースの項目構成などを定義する。※データベースを使う場合のみ

url.py…どのファイルパスを呼び出すか・リダイレクトさせるかなどを記載する

views.py…どのHTMLファイルを呼び出すか・データベースから値を呼び出すかなど、画面描写全般のロジックを記載する

htmlファイル…templateフォルダ内に格納され、各画面構成を定義する。Pythonでの記載を挿入することもできる

それではイメージを膨らますために、上で作成した「testApp」プロジェクトに実際に新しいページを追加してみましょう。
シンプルなページの追加であり、データベース操作は不要のためmodels.pyは登場しませんが、作業実施の手順イメージはつかめるのではないでしょうか。

Command Line
python manage.py startapp アプリケーション名

新しいページや機能とつくるまて、まずは上記のコマンドで「アプリケーション」をプロジェクトに追加します。
Djangoにおいては、基本的に機能ごと(基本的なページや認証機能など)にアプリケーションを作成し、別々に管理していきます。それによりソースごとの役割をほかの人が見たときもわかりやすくすることができます。
誰が見てもわかりやすい構造になっていることは、システム開発において非常に重要な要素です。

kousei-1
①プロジェクトのディレクトで起動したCommand Lineで「testPage」というアプリを追加するため、「python manage.py startapp testPage」と入力・実行します。
 上画像のように何もエラー等表示されなければ追加成功です。
kousei-2
②ディレクトに戻ると「testPage」というフォルダが無事作成されていることがわかります。
 「testPage」フォルダはひとまず置いておき、まずは「testApp」フォルダに入っていきましょう。
kousei-3
③「testApp」フォルダに入ると、上画像のようなファイル群が存在しています。重要な構成要素として挙げた「urls.py」もありますね。
 今の段階では「settings.py」「urls.py」の2ファイルに対して、「testPage」アプリを使用するための設定を入れていきます。
kousei-4
⑤まずは「settings.py」を開き、上画像のように内容を書き換えていきます。※「# 追加ページ用設定」と記載のある下の行が追加が必要な内容です。以下にコードも配置しますので、ファイル内で「INSTALLED_APPS」と記載のある個所を探し、そのまま貼り付けてもらって結構です。
settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 追加ページ用設定
    'testPage.apps.TestpageConfig'
]
kousei-5
⑤次に「urls.py」を開き、上画像のように内容を書き換えていきます。※「# 追加ページ用設定」と記載のある下の行が追加が必要な内容です。以下にコードも配置しますので、そのまま貼り付けてもらって結構です。
urls.py
from django.contrib import admin
# 追加ページ用設定
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    # 追加ページ用設定
    path('', include('testPage.urls')),
]

ここまでで「testApp」フォルダ内における「testPage」アプリを使用するために設定は完了です。
具体的に何をしているかという話については後々自然と理解できてくるはずですので、ここではひとまず手を動かして流れをつかんでいきましょう。

kousei-6
⑥次に「testPage」フォルダに入って設定を変更していきます。上画像のようなファイル群が「testPage」フォルダ内に作成されているのですが、重要な構造として紹介した「models.py」や「views.py」がありますね。
kousei-7
kousei-8
⑧「templates」フォルダに入り、上画像のように「testpage.html」というファイルを作成してください。今回のページ追加のゴールは、このファイルの内容をブラウザ上で表示できることです。
テスト用ページなので中身はどのようなものでも良いのですが、コードサンプルを以下に配置しますのでそのまま使っていただいても結構です。
testpage.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>シンプルなHTMLサンプル</title>
</head>
<body>
    <h1>こんにちは、世界!</h1>
    <p>これはシンプルなHTMLファイルのサンプルです。</p>
</body>
</html>
kousei-9
⑨次に「urls.py」というファイルを追加します。
 覚えていらっしゃるかもしれませんが、同じ名前のファイルが「testApp」フォルダの中にもありましたよね。章の冒頭でも述べた通り、「urls.py」ファイルはどのファイルパスを呼び出すか・リダイレクトさせるかなどを記載する場所です。そしてこのファイルは基本的にアプリケーションごとに1ファイルずつ配置が必要になりますので、覚えておくと良いでしょう。
kousei-10
⑩作成した「urls.py」ファイルの中身を上画像のように変更していきます。※「# 追加ページ用設定」と記載のある下の行が追加が必要な内容です。以下にコードも配置しますので、そのまま貼り付けてもらって結構です。
urls.py
from django.urls import path
from . import views

urlpatterns = [
   # 追加ページ用設定
   path('', views.TestPageView.as_view(), name="testpage"),
]
kousei-11
⑪併せて同じ場所にある「view.py」ファイルの中身も変更していきます。※「# 追加ページ用設定」と記載のある下の行が追加が必要な内容です。以下にコードも配置しますので、そのまま貼り付けてもらって結構です。
views.py
from django.shortcuts import render
# 追加ページ用設定
from django.views import generic

# Create your views here.
class TestPageView(generic.TemplateView):
    # 追加ページ用設定
    template_name = "testpage.html"
kousei-12
⑫ここまでくればあとは起動して確認してみるだけです。前章で紹介した手順の通り、Command Line上で「python manage.py runserver」コマンドを入力・実行してみてください。
上画像のように、作成した「testpage.html」ファイルの中身が表示されていればページ追加成功です!

管理画面に入ってみましょう

さて、ここでは管理画面に入る方法をご紹介したいと思います。
管理画面とは、一般ユーザーとは別にサイトの情報を直接追加・変更・削除するためのページのことを指します。
Djangoはそれをフレームワークの機能として自動で提供してくれます。これがあると非常に便利で、開発効率は大きく改善されます。

管理画面に入るためには、まず管理画面にログインするためのユーザー(スーパーユーザー)を作成する必要があります。
下記にそのコマンドを掲載するのと併せて、実行手順を記載しますのでぜひ試してみてください。

Command Line
python manage.py createsuperuser
kanri-1
①プロジェクトのディレクトリで開いたCommand Line上で「python manage.py createsuperuser」コマンドを入力・実行します。
 Usernameなどの入力を求められますので、任意で情報を設定してください。
kanri-2
②スーパーユーザーの準備ができたら、実際に管理画面に入っていきましょう。
 ブラウザで「http://127.0.0.1:8000/admin/」と入力してください。これが管理画面に入るためのデフォルトでのURLです。
 ※任意のものに変更することも可能です。
 ※アクセスするためにはサーバが起動している必要があります。前章でお話ししたように「python manage.py runserver」
  コマンドでサーバを事前に起動しておきましょう。
kanri-3
③スーパーユーザーの登録時に設定した情報を入力して「Log in」ボタンを押してください。
kanri-4
④上画像のような画面に遷移出来たら、管理画面へ無事には入れたことになります。
 今は管理画面に入るためのユーザー追加くらいしか操作ができませんが、データベースのデータを追加・変更・削除したりも設定次第では可能です。
 Djangoにおいて非常に重宝する画面ですので、ぜひ活用してみてくださいね。

今回は登場しなかった「models.py」への更新については以下の記事で詳しくご紹介していますので、さらなる理解のためにもぜひ読んでみてくださいね。

header14【Python】インデックスを指定しよう!テンプレート上での配列の特殊な扱い方を図解でわかりやすくご紹介します【Django】

Django活用時注意点まとめ

注意点① インポートの仕方を覚えておきましょう

Djangoを用いて開発を行っていく上での注意点を基礎的なものではありますが挙げておきたいと思います。

モデルやクラスを別ファイル内で使用したい場合は、基本的にすべて各ファイル内でインポートする必要があります。
その際にはファイルの上部に下記のようなフォーマットで対象の参照情報を記載すればよいです。

Python
import 参照物 from ライブラリ名

開発作業が単独のファイルだけで完結することはほぼなく、役割ごとに分かれた多数のファイルを活用してシステムを構築していきます。
つまり開発していく上で幾度となく上記の処理を記載していくことになるので必ず忘れないようにしたいですね。

注意点② 先人の知恵は積極的に活用しましょう

ログインなど、汎用的な機能はすでに仕組みが用意されていて、活用できるのがフレームワークの強みです。
実装したい機能があれば、すでに機能が存在していないかまずは探してみましょう!

既に存在しているライブラリやモジュールを使用することで、開発期間を大幅に短縮させることができるだけでなく、バグの少ない保守性の高いシステムをつくることができます。

これら以外にも開発を行っていく上での注意事項は無数に存在します。
開発と課題は常に隣りあわせですので、その都度調べて対策を1つずつ習得していくことが必要になってきます。
しかし大抵の問題についてはWeb上の先人の知恵で対処することができますので、ぜひ活用してみてください。

まとめ

いかがだったでしょうか?

本日お伝えしたかった内容を簡単にまとめると以下のようになります。

ぜひ何らかの形でお役に立てれば幸いです。

それでは次の記事でまたお会いしましょう♪

本日のまとめ

・まずはフレームワークの構成をしっかりつかむと以後の開発がスムーズです。

・既存ライブラリの活用など、効率の良い開発を意識していきましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です