Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

【Django】①Djangoで「Hello world」を表示してみよう


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20210924094721p:plain

おはようございます。Shotaです。

今回の記事では、PythonのWebフレームワーク「Django」でHello worldを表示する方法について解説します。(久しぶりに技術記事らしいことを書きます)

なお、本記事はWindowsで動かすことを前提にして書かれています。Macを使っている方は別の記事を参照ください。



Djangoのインストール・環境構築

環境構築に必要なものは次の通りです。


なお、本記事ではVSCodePythonがインストールされている前提で解説を進めていきます。


Djangoのインストール

Djangoをインストールするする場合、コマンドプロンプトを開き、以下のように入力します。

pip install django

Djangoがインストールされているか確認する際には、コマンドプロンプトpythonと入力し、以下のように入力してください。

import django
print(django.get_version())

このように出力されていればインストールは完了です。

3.2.4

あとはexit()と入力してpythonプロンプトを閉じてください。


virtualenvをインストール

次はプログラムの開発に必要な仮想環境を構築するためのPythonライブラリvirtualenvをインストールします。

pip install virtualenv


仮想環境をインストール

次は実際に仮想環境を作っていきます。任意の名前の仮想環境をつくる際には次のコマンドを入力してください。

virtualenv <作成する環境名>

本記事では、実際に作る仮想環境の名前をenv1としておきます。

これで仮想環境を作ることができました。

作った仮想環境から抜けるためには、次のコマンドを入力すればできます。

deactivate


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

基本的な設定が終了したので、実際にDjangoプロジェクトを作ってみましょう。

コマンドプロンプトを開いて、次のコマンドを入力してください。

cd <ファイルがあるディレクトリ名>
django-admin startproject hello_app_project .

このように入力すれば、以下のようにプロジェクトが完成されていると思います。(VSCodeの場合)

f:id:ShotaNukumizu_1000:20211015090541p:plain

あとは以下のように実行するディレクトリを移動させて、次のコマンドを入力してください。

django-admin startapp hello_world_app(アプリ名)

このコードを実行すると、以下のように表示されていると思います。(VSCodeの場合)

f:id:ShotaNukumizu_1000:20211015090928p:plain

このように表示されれば、Djangoプロジェクトの基本的な設定は完了です。


実際にDjangoを動かしてみる

実際に開発者サーバを立ち上げてみましょう。以下のコマンドを入力してください。

py manage.py runserver

これをコマンドプロンプトに入力して、以下のメッセージが表示されればサーバが動いています。

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
October 15, 2021 - 09:11:35
Django version 3.2.4, using settings 'hello_world_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

そして、上記に書かれているhttp://127.0.0.1:8000/にアクセスしてください。

以下のような表示があればインストールは成功しています。

f:id:ShotaNukumizu_1000:20211015091446p:plain

これでDjangoの基本設定は終了しました。


Hello worldを実際に表示させてみる

それでは、実際にHello Worldをブラウザ上で表示させてみましょう。


テンプレートの設定

最初に、表示するHTMLファイルを設置するテンプレートの設定をします。

settings.pyを開いてください。その際、INSTALLED_APPSに追記しておきましょう。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'hello_world_app.apps.HelloWorldAppConfig',
]

次に、テンプレートファイルを設定するプログラムを以下のように書いておきましょう。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [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',
            ],
        },
    },
]

ちなみに、上記のプログラムにおけるBASE_DIRmanage.pyが置かれているファイルの場所のこと(ディレクトリと呼びます)で、このように表示されます。

from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent

次に、manage.pyが置かれているディレクトリと同じディレクトリにtemplatesファイルを作成します。そして、その中にindex.htmlファイルを作成します。

indx.htmlファイルの中身は以下の通りです。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Hello World</h1>
</body>
</html>

次にhello_world_app/views.pyで、以下のようにコードを書いてください。(詳細な説明は割愛します)

from django.views import generic

class IndexView(generic.TemplateView):
    template_name = 'index.html'

hello_world_appフォルダ内で、新しくurls.pyファイルを作成して以下のコードを書いてください。

from django.urls import path
from . import views

app_name = 'hello_world_app'
urlpatterns = [
    path('', views.IndexView.as_view(), name='index')
]

最後に、hello_world_projectフォルダ内にあるurls.pyを開いて以下のようにコードを書いてください。

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

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

終了したら、実際に以下のコマンドを入力して実行してみましょう。

py manage.py runserver

以下のように画面が表示されるかと思います。

f:id:ShotaNukumizu_1000:20211015095635p:plain


まとめ

今回の記事では詳細な説明を割愛してDjangoを使って「Hello world」と表示させるプログラムを書いてみました。

今回の記事を参考に、Djangoに対する理解を深めていただけると幸いです。

詳細なプログラムの説明は明日の記事で書きます。

今回の記事はこれで終了です。

【参考サイト】

qiita.com

www.djangoproject.com

python.keicode.com