LoginSignup
4
4

More than 1 year has passed since last update.

Djangoに0から入門

Last updated at Posted at 2021-07-14

はじめに

本記事では、Python初心者でもDjangoでWeb開発をスタートするために必要な環境構築の手順をまとめました。ただし、筆者がDjangoに関する知識がほぼ0の状況から作成した内容であるため、技術的に誤った記述をしている可能性があることをご承知おきください。

目次

■環境構築

◇開発環境

種別 名称 (バージョン)
OS macOS
言語 Python 3.9.5
フレームワーク Django 3.2.3
IDE PyCharm 2021.1.1 CE

◇Pythonをインストール

今後の開発を考えて、パッケージマネージャーであるHomebrewでPythonをインストールします。

●Homebrewをインストール

Homebrew公式サイトに掲載されているインストール用のコードをコピーし、ターミナルに貼り付けて実行します。

下記コマンドでバージョン確認し、問題なければインストール完了。

brew -v

参考
- Homebrewのインストール - qiita

●pyenvをインストール

brewコマンドでpyenvをインストールします。

brew install pyenv

次にpyenvの設定をします。

echo $SHELL

上記コマンドの出力結果によって設定方法が異なる。

・/bin/bashが出力された場合

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile

echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

・/bin/zshが出力された場合
(Homebrew以外でpyenvをインストールした場合は少し異なる)

echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

source ~/.zshrc

参考
- pyenv - github
- 【Python超入門講座】Macの開発環境を構築しよう【初心者向け】 - youtube

●Pythonをインストールする

pyenvでPythonをインストールするメリットは、プロジェクトごとに複数のバージョンのPythonを切り替えて使用できることである。

インストール可能なバージョンを確認する。

pyenv install --list

Python 3.9.5 をインストールする場合は、

pyenv install 3.9.5

インストールされているバージョンを確認するには、

pyenv versions

バージョン 3.8.5 と 3.9.5 をインストールした場合は以下のような出力になります。

  system
* 3.8.5
  3.9.5

✳︎がついているバージョンが現在選択されており、切り替えるには下記のコマンドを打ちます。なお、systemは標準でインストールされているものなので今回は気にしなくて大丈夫です。

pyenv global 3.9.5

とすると、下記のようになります。切り替えのオプションとしてglobalのほかに、localとshellがありますので、気になる方は参考欄を参照してください。

  system
  3.8.5
* 3.9.5

最後にPythonのバージョンを確認しておきます。

python -V

ここで、先ほど選択したバージョンが表示されていればPythonのインストールは完了です。

参考
- pyenv、virtualenv、pip、anacondaの違いを説明します
- pyenvを使ってPythonの複数のバージョンを使い分ける

◇Djangoをインストール

●Pythonで仮想環境を作成する

プロジェクトの実行環境を用意するために仮想環境を作成する。実行環境を分ける理由は、システムが使うPython環境に影響を与えないこと、同じモジュールのバージョンを使い分けられることなどが挙げられる。

仮想環境を作成するには下記のコマンドを打ちます。仮想環境名は任意に書き換えて下さい。

python -m venv 仮想環境名

仮想環境ディレクトリに移動し、仮想環境に入ります。

cd 仮想環境名
source bin/activate

仮想環境に入ると、コマンドラインが下記のようになります。

(仮想環境名) $ 

仮想環境を抜けたい場合は、次のコマンドを打つだけです。(これからモジュールを仮想環境にインストールするので仮想環境を抜けた方は入り直して下さい。必ずです。

deactivate

●Djangoをインストールする

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

最新バージョンをインストール
pip install django

バージョンを指定してインストール
pip install django==3.2.3

pipコマンドを使用すると、pipをアップグレードするよう警告が出てくることがありますが、その際は素直にアップグレードして下さい。pipアップグレード後、念のために上記コマンドを再入力して下さい。

インストールされたバージョンを確認して、

python -m django --version

問題なければDjangoインストール完了です。

参考
仮想環境: Python環境構築ガイド - python.jp

◇PyCharmをインストール

PyCharmダウンロードサイトからインストーラーをダウンロードする。無料版のCommunity Editionで十分快適に利用できます。ダウンロード後、インストールを完了して下さい。

■簡単なアプリケーション作成

◇Djangoプロジェクトを作成する

先ほど作成した仮想環境ディレクトリ直下にDjangoプロジェクトを作成する。サンプルとしてプロジェクト名はhello_appとしていますが、任意に書き換えて下さい。(初学者向けの補足ですが、基本的にコマンドは仮想環境下で実行して下さい。)

django-admin startproject hello_app(プロジェクト名)

◇PyCharmの設定をする

次にPyCharmを開いて、作成したプロジェクトディレクトリ(仮想環境ディレクトリ直下のhello_app)を開き、以下の手順で設定する。

  1. PyCharmメニューの「Preferences…」をクリック
  2. 左側の一覧内の「Project: Djangoプロジェクト名」をクリック
  3. 「Python Interpreter」クリック
  4. 右側のPython Interpreter選択箇所にある「歯車」をクリックし「Add」をクリック
  5. 「Existing environment」を選択し、Interpreterの「…」をクリック
  6. 「仮想環境ディレクトリ/bin/python」を選択してOKをクリック
  7. もう一度右下にあるOKをクリック
  8. PyCharm内のTerminalを開いて、初めから仮想環境に入れていることが確認できたら設定完了です。

Windowsの方は少し異なる部分がありますので、適宜調べながら設定して下さい。

◇Webアプリケーションの動作確認

PyCharm上のターミナル(今後、特に説明がない場合はPyCharm上のターミナルを指す)で下記コマンドを打ち、

python manage.py runserver

ブラウザで下記にアクセスする。

http://localhost:8000/

このような画面が表示されていたらOKです。
Webアプリケーションを停止させるにはターミナルで「ctrl + c」を入力するだけですが、基本起動したままでも大丈夫です。

◇アプリケーションを作成する

Webアプリケーションの起動を確認できたので、次はブラウザにHello Worldを表示させようと思います。

●Djangoアプリケーションを作成する

Djangoアプリケーションを作成していきます。アプリケーション名は任意ですが、今回はサンプルとしてhelloとします。

python manage.py startapp hello(アプリケーション名)

実行後、helloアプリケーションディレクトリが追加され、下記のようなディレクトリ構造になっているかと思います。反映されない場合はPyCharmをリフレッシュなり再起動して下さい。

hello_app
├── hello_app
│      ├── (以下略)
│
├── hello (←新規作成される)
│   ├── migrations
│   ├── __init__.py
│   ├── (以下略)
│
├── manage.py
├── (以下略)

●画面表示の処理を作成

ここからは実際にプログラムを書いていきます。

まず、helloディレクトリ内のviews.pyを下記のように編集します。

views.py
from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello World")

書かれている内容をざっくり説明すると、index関数が呼び出されるとクライアント(Webブラウザ)に「Hello World」をレスポンスする(送り返す)といった処理になってます。

●ルーティングを設定

続いて、ブラウザでアクセスするURLによって画面表示の処理を変えるためにルーティング設定をします。

hello_appディレクトリ内のurls.pyを下記のように編集します。

urls.py
from django.contrib import admin
from django.urls import path
import hello.views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', hello.views.index),
]

「hello/」の部分がURLを設定していて、そこにアクセスすると「hello.views.index」(さっき書いた画面表示の処理)が呼び出されるよ、という仕組みです。

●ページにアクセス

それでは「Hello World」が画面に表示されるか確認しましょう。

Webアプリケーションを停止させている方は、下記コマンドで起動するのを忘れずに。

python manage.py runserver

ブラウザで下記にアクセスしましょう。

http://localhost:8000/hello/

↓のように「Hello World」が表示されていれば成功です。


(↑スクショ貼り付けたけどブラウザ表示領域がわかりにくい。。。)


先ほどの動作確認の時のように「http://localhost:8000/」にアクセスすると下記のエラーが出るので、注意して下さい。

(補足ですが、「http://localhost:8000/」にルーティングしたい場合は、urls.pyのurlpatternsの内容を下記に変更して下さい。)

urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', hello.views.index),
]

おわりに

SNSで色んな方々(2名)の影響を受け、今勉強していることを発信してみることに。
書き始めた当初はもう少し踏み込んだ内容まで書くつもりだったのですが、キリがなさそうだったので入門するまでのところで一旦切り上げました。(続編も投稿予定ですが時期的にいつになるのやら。笑)

普段、技術的な内容とかはMacのメモアプリにツラツラ書いてるんですが、いざQiitaなどで公開するとなると「いい加減な情報は記載できないプレッシャー」を感じて情報整理を始めたんですけど、なんとなく理解した気になってたところとか後回しにしてたところが浮き彫りになって、そこを理解するために参考書読み漁ったりネットサーフィンで大変でした。(情報整理は普段からしとけっていう教訓を得ました。笑)
そうこうして整理した知識は定着が段違いなので、今回は情報発信することの重要性を知る良いきっかけになったと思います。

最後になりましたが、本記事をお読みいただきありがとうございます。
初投稿なので至らぬ点など沢山あるかと思いますが、お手柔らかにご質問、ご指摘等頂けたらと思います。

参考文献

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4