1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DjangoでHello Worldを表示する

Last updated at Posted at 2022-05-31

1. はじめに

PythonのWeb開発フレームワークとして人気のDjango(ジャンゴ)で「Hello World」を表示していきます。
開発環境はWindows上に仮想環境を構築し、仮想マシン(Ubuntu)で行います。

2. 開発環境

OS: Windows 10 Pro
VirtualBox: 6.1
Vagrant: 2.2.19
仮想マシン: Ubuntu 20.04.4 LTS
Python: 3.10.4
Django: 4.0.4

3. Djangoとは

DjangoはPythonで実装されたWebアプリケーションのフレームワークの一つです。
Instagramやmozillaなどの有名なサイトでDjangoが使われています。
オープンソースで多数の機能が含まれおり、効率的に開発を進めることができます。

4. 環境構築

まずはWindows上に仮想環境を構築し、仮想マシン(Ubuntu)にPythonとDjangoをインストールします。

4.1. VirtualBoxインストール

VirtualBoxの公式サイトからインストーラーをダウンロードし、インストールします。
https://www.virtualbox.org/

4.2. Vagrantインストール

Vagrantの公式サイトからインストーラーをダウンロードし、インストールします。
https://www.vagrantup.com/downloads

インストール後はPCの再起動が必要になります。

4.3. 仮想マシン作成

4.3.1. UbuntuのBoxをVagrantに追加

コマンドプロンプトから下記のコマンドでUbuntuのBoxを追加します。

>vagrant box add bento/ubuntu-20.04

4.3.2. Vagrantfileを作成

コマンドプロンプトから作業用のディレクトリに移動し、下記のコマンドでVagrantfileを作成します。

>vagrant init

下記のサイトを参考にVagrantfileを編集します。
https://app.vagrantup.com/bento/boxes/ubuntu-20.04

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-20.04"
  config.vm.synced_folder "./work", "/home/vagrant/work"
  config.vm.network "forwarded_port", guest: 8000, host: 8000
end

4.3.3. 仮想マシンを立ち上げ

下記のコマンドで作業フォルダを作成し、仮想マシンを立ち上げます。

>mkdir work
>vagrant up

4.3.4. 動作確認

下記のコマンドで仮想マシンにssh接続します。

>vagrant ssh

仮想マシンにssh接続後、OSのバージョンを表示して動作確認します。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"

4.4. Djangoのインストール

4.4.1. Djangoのインストール

下記のコマンドでDjangoをインストールします。

$ sudo apt update
$ sudo apt -y upgrade
$ sudo apt install -y python3-pip
$ pip install Django

4.4.2. 動作確認

Djangoのバージョンを表示して動作確認します。

$ python3 -m django --version
4.0.4

環境構築は以上になります。

5. Django

ここからはDjangoを使ってWebアプリケーションを作成していきます。

5.1. プロジェクトの作成

下記のコマンドでプロジェクトを自動作成します。

cd /home/vagrant/work
python3 -m django startproject mysite

下記のような構成で自動作成されます。DBのデフォルトはSQLiteになっています。

mysite/
├── db.sqlite3
├── manage.py
├── mysite
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

5.2. 開発サーバーで動作確認

デフォルトで127.0.0.1:8000 が立ち上がります。
ローカルPC上での開発であれば問題ありませんが、仮想環境上であれば仮想環境内だけで環境が閉じてしまうことになります。
そのためコマンドの末尾に「0.0.0.0:8000」を追加し、ローカルPCのブラウザからアクセスできるようにします。

python3 manage.py runserver 0.0.0.0:8000

上記のコマンドの実行後、ローカルPCのブラウザから下記のアドレスにアクセスし、Djangoのロケットが打ち上げられている画面が表示されれば成功です。
http://127.0.0.1:8000/
it_works.png

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

5.3.1. 自動生成

下記のコマンドでアプリケーションを自動作成します。

python3 manage.py startapp hello

下記のような構成で自動作成されます。

hello/
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│   └── __init__.py
├── models.py
├── tests.py
└── views.py

5.3.2. Viewの編集

hello/view.pyを下記の編集します。

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world.")

5.3.3. URLの対応付け

URLを対応付けするにはURLconfが必要になります。
helloディレクトリにURLconf を作るにはurls.pyというファイルを作ります。

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

次はルートのURLconfにhello.urlsモジュールの記述を反映させる必要があります。
mysite/urls.pyにdjango.urls.includeのimportを追加し、urlpatternsのリストに include() を挿入します。

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

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

5.4. 動作確認

下記のコマンドで開発サーバーを立ち上げます。

python3 manage.py runserver 0.0.0.0:8000

ローカルPCのブラウザから下記のアドレスにアクセスすると「Hello World」と表示されることが確認できます。
http://127.0.0.1:8000/hello/

6. おわりに

環境構築からDjango(ジャンゴ)で「Hello World」を表示するまでやってみました。
今後はDjangoの機能を紹介し、最終的にWebアプリを公開するまでを目標にしていきたいと思います。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?