LoginSignup
6
4

More than 1 year has passed since last update.

【Python+Django+Docker+VS Code】WebアプリHello Worldを表示してみる(Mac環境)

Last updated at Posted at 2023-02-05

環境メモ
⭐️macOS Monterey
⭐️Python 3.11.1
⭐️Django 4.1.6
⭐️Visual Studio Code 1.75.0 ←Mac OS版
⭐️Docker desktop 4.11.1 ←Mac OS版

↓↓完成内容
http://127.0.0.1:8000/nonHello
スクリーンショット 2023-02-06 2.16.32.png

1.概要

Python(プログラミング言語)、Django(Webアプリフレームワーク)、Docker(コンテナ仮想環境)を構築し、WebアプリHello Worldを表示してみます。

2.ざっくり説明

2-1.Django(ジャンゴ)

Pythonで使えるWebアプリ・サービスのフレームワークDjango(ジャンゴ)を使う。
Djangoはフルスタックフレームワークと呼ばれており、Webアプリの開発において必要な機能が全て揃っているともいえるフレームワークです。

2-2.Docker(ドッカー)

コンテナ型仮想環境を作成・実行・管理するためのプラットフォームです。
Dockerは、開発環境の構築が簡単にできます。 Dockerエンジンをインストールし、利用したいアプリのDockerイメージを入手してコンテナを作成するだけで、開発環境が構築できます。

2-3.Visual Studio Code(VS Code)

Microsoftが開発したソースコードエディタです。プラグインをインストールすると効率的なコーディングが行えるようになります。

3.環境構築

3-1.Docker Desktopのインストール

Mac用のDockerデスクトップをインストールする

Docker Desktop for Mac
https://docs.docker.com/desktop/install/mac-install/
スクリーンショット 2023-02-06 3.23.10.png

3-2.Visual Studio Code(VS Code)のインストール

Mac用のVisual Studio Codeをインストールする

Download Visual Studio Code
https://code.visualstudio.com/download

スクリーンショット 2023-02-06 3.23.26.png

3-3.VS CodeにプラグインDev Containersをインストール

VS Code上から拡張機能を検索しDev Containersをインストールする。
Dev ContainerはVS Codeからコンテナ上でビルドやアプリの実行ができ、VS CodeからDockerのコンテナへリモートデバッグができます。
スクリーンショット 2023-02-06 0.53.14.png

4.Dockerの環境を作る

4-1.devcontainerフォルダの作成

.devcontainerフォルダを作ります。
Devcontainerは、開発環境に必要なライブラリを格納します。
スクリーンショット 2023-02-06 0.56.40.png

4-2.devcontainer.jsonの作成

devcontainer.jsonを作成します。
Devcontainer で利用するコンテナーの構成や設定を格納するファイルです。

devcontainer.json
{
   "name": "non-django",
   "dockerFile": "Dockerfile",
   "extensions": [
   	"ms-python.python"
   ],
}

4-3.docker-compose.ymlの作成

docker-compose.ymlを作成します。
Dockerの設定ファイルです。

docker-compose.yml
version: '3'
services:
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
        - .:/code
    ports:
        - "8000:8000"

4-4.Dockerfileの作成

Dockerfileを作成します。
新規にDockerイメージを作成するための手順を記したテキストファイルです。

Dockerfile

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

4-5.requirements.txtの作成

requirements.txtを作成します。
一括インストールしたいPythonパッケージをまとめたリストです。

requirements.txt
Django

5.Docker Desktopを起動する

Docker Desktopを起動します。
クリックして起動する。
スクリーンショット 2023-02-06 1.07.12.png

スクリーンショット 2023-02-06 1.05.08.png

6.VS Codeでコンテナのフォルダを選択する

VS Codeでコンテナのフォルダを選択します。
Open Folder in Containerを選んで、コンテナのフォルダを選択します。
スクリーンショット 2023-02-06 1.13.12.png

7.Djangoプロジェクトの作成

Django のプロジェクト (project) を作成します。
下記コマンドで、Djangoを構成するプロジェクトのコードを自動生成します。
$ django-admin startproject ★★★プロジェクト名★★★
例)
$ django-admin startproject nonDjangoApp
スクリーンショット 2023-02-06 1.23.29.png

8.Djangoアプリケーションの作成

Django のアプリケーションを作成します。
下記コマンドで、Djangoを構成するアプリケーションのコードを自動生成します。
$ python manage.py startapp ★★★アプリケーション名★★★
例)
python manage.py startapp nonSample2

スクリーンショット 2023-02-06 1.28.22.png

9.Djangoプロジェクト

9-1.Djangoプロジェクトのsettings.pyINSTALLED_APPSにDjangoプロジェクトを追加する

スクリーンショット 2023-02-06 1.36.07.png

9-2.Djangoプロジェクトのsettings.pyTEMPLATESにtemplatesに追加する

'DIRS': [BASE_DIR, 'templates'],
スクリーンショット 2023-02-06 1.40.13.png

9-3.Djangoプロジェクトにurls.py新規作成する

urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('nonSample2.urls'))
]

スクリーンショット 2023-02-06 1.45.15.png

10.Djangoアプリケーション

10-1.Djangoアプリケーションにurls.py新規作成する

URLで/nonHelloにアクセスするとfuncHelloWorldを実行する。

http://127.0.0.1:8000/nonHello

urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('nonHello', views.funcHelloWorld),
]

スクリーンショット 2023-02-06 1.53.18.png

10-2.Djangoアプリケーションのviews.py修正する

funcHelloWorldが呼ばれたら、index.htmlを表示する

views.py
from django.shortcuts import render

def funcHelloWorld(request):
    return render(request, 'index.html')

スクリーンショット 2023-02-06 2.02.50.png

10-3.templatesフォルダを作成する

templatesフォルダを作成し、index.htmlを作成する
スクリーンショット 2023-02-06 2.05.11.png

index.html
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>Django nonSample2</title>
  </head>
  <body>
    <p>Hello World</p>
  </body>
</html>

スクリーンショット 2023-02-06 2.06.55.png

11.マイグレーションする

Djangoプロジェクト内で下記コマンドを叩く
$ python manage.py migrate

マイグレーション成功
スクリーンショット 2023-02-06 2.14.21.png

12.ローカルサーバー起動する

$ python manage.py runserver

スクリーンショット 2023-02-06 2.17.01.png

デフォルトには、何も設定していないので、何も表示しません。
http://127.0.0.1:8000
スクリーンショット 2023-02-06 2.16.21.png

URLを指定すると、Hello Worldを表示する

http://127.0.0.1:8000/nonHello
スクリーンショット 2023-02-06 2.16.32.png

12.バージョンを確認する方法

12-1.pythonのバージョン

$ python -V

12-2.djangoのバージョン

$ python -m django --version

スクリーンショット 2023-02-06 2.21.32.png

6
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
6
4