djangoで作るTodo管理アプリ①(djangoの基本と環境構築)

django

はじめに

競馬予測のAIや高配当を探すプログラムなどをPythonで作成しています。多くの人に使って頂きたいので、アプリケーション化することにしました。インターネット経由でアクセスできるようにしたいので、Webアプリケーションを作成することにしました。

Webアプリケーションの作成する際に使用するフレームワークは、djangoを用いることにしました。djangoを初めて使用するので、学んだことを記憶に定着させるために、ブログに学んだことをまとめることにしました。

最終的にはdjangoでTodoアプリを作成する予定です。
今回は下記について記載しています。

  • djangoの基本
  • djangoによる開発環境の作成
  • djangoプロジェクトの作成

djangoを用いて下記のTodoアプリを作成します。

djangoの基本

djangoの主要ファイル

djangoでプロジェクトを作成すると、いくつかのファイルが自動で生成されます。主要ファイルとなる「urls.py」「views.py」「models.py」の役割は大まかに表現すると下記となります。

urls.py リクエストの内容を解析し、解析した内容でviews.pyを実行する
views.py urls.pyからウェブリクエストを受け取り、必要な処理を行ってレスポンスを返す
models.py views.pyからのクエリ要求を処理し、クエリ結果を返す

djangoの動作フロー

djangoがユーザからのリクエストを受けて、レスポンスを返すまでの大まかな流れをまとめました。

  1. ユーザが、ブラウザからWebページにアクセスする
  2. Webサーバが、urls.pyにユーザからのリクエストを転送する
  3. urls.pyは、リクエストを処理し、views.py内の関数あるいはクラスにルーティングする
  4. views.pyは、リクエストに応じてmodels.pyにデータ取得を要求する
  5. models.pyは、views.pyの要求に応じてデータベースにクエリを発行する
  6. データベースは、views.pyのクエリ要求に応答する
  7. models.pyは、データベースからのクエリ応答をviews.pyに返す
  8. views.pyは、HMLTページを組み立てるためにbase.htmlを要求する
  9. views.pyは、base.htmlを取得する
  10. views.pyは、HMLTページを組み立てるためにtemplate1.htmlを要求する
  11. views.pyは、template1.htmlを取得する
  12. views.pyは、htmlとデータを組み合わせてHTMLページを組み立ててレスポンスを返す
  13. Webサーバはブラウザにレスポンスを返す

base.htmlとtemplate1.html、template2.htmlについて

base.html、template1.html、template2.htmlのファイル名は任意に設定することができます。

  • base.htmlでブロック(枠)を定義する
  • ブロック(枠)内の内容をtemplate1.html、template2.htmlで設定する
  • template1.html、template2.htmlの内容はmodels.pyでデータベースから取得することができる

ニュースサイトのニュースリストとニュース記事のページを生成するときを例に、base.htmlとtemplate1.htmlとtemplate2.htmlを用いた時のイメージを下記にまとました。

<ニュースサイトのニュースリストの作成>

<ニュースサイトのニュース記事の作成>

djangoによる開発環境の作成

作成するDjangoによる開発環境は下記となります。
WSL(Windows Subsystem for Linux)を利用することでUbuntu上でDjangoを用いたWebアプリケーションを作成します。

OS Windows10 pro
Visual Studio Code 1.84.0
WSL 2
Ubuntu 22.04.3 LTS
Python 3.10.12
django 4.2.6

WSL(Windows Subsystem for Linux)のインストール

Windows上でLinuxを動作させるために、WSLをインストールします。

  1. 管理者でWindowsにログインする
  2. 「Winキー」+「r」で「ファイル名を指定して実行」を起動する
  3. 「OptionalFeatures.exe」を入力して「OK」をクリックする
  4. 「Windowsの機能」で下記を選択して「OK」をクリックする
    ・Linux用Windowsサブシステム
    ・仮想マシン プラットフォーム
  5. 再起動する
  6. コマンドプロンプトで「wsl」を実行して下記のように表示されることを確認する

以上でwslのインストールは完了です。

Ubuntuのインストール

Windows上にUbuntuをインストールします。

  1. 「Microsoft Store」を起動します。
  2. 検索バーに「ubuntu」を入力して検索する
  3. 「ubuntu」を選択して「入手」をクリックする
    ダウンロードが完了するまで待つ
  4. ダウンロードが完了したら「開く」をクリックする
  5. ubuntuのインストール処理が始まるのでしらばらく待つ
  6. インストール処理が終わるとユーザ作成の処理になるので、ユーザ名とパスワードを入力してユーザを作成する

以上でubuntuのインストールは完了です。

WSLをWSL2に更新

WSLをWSL2に更新します。
WSLのままでも動作しますが、WSL2にすることでパフォーマンスの向上とDockerのサポートが含まれているので、WSL2に更新します。

  1. コマンドプロンプトを起動する
  2. 「wsl -l -v」を実行し、インストールしたUbuntuの名前とWSLのバージョンを確認する。下記の場合、名前は「Ubuntu」でWSLのバージョンは「1」となる

    WSLのバージョンが「2」と表示されていたら以降の作業は不要です
  3. 「wsl –update」を実行し、でWSLのアップデートを実行する
  4. 「wsl –set-version Ubuntu 2」を実行し、WSLのバージョンを「2」に設定する
  5. 「wsl -l -v」を実行し、インストールしたUbuntuのWSLのバージョンを確認する。
    下記の場合、WSLのバージョンは「2」となる

以上でWSLをWSL2に更新する作業は完了です。

Visual Studio CodeにWSL(拡張機能)を追加

Visual Studio CodeからWSLに接続するために拡張機能を追加します。

  1. WSLをインストールしたあとに、Visual Studio Codeを起動する
  2. Visual Studio Codeを起動するとアプリの右下に「拡張機能のインストール」ダイアログが表示されるので、「インストール」をクリックする
  3. 「拡張機能: WSL」が表示されるのを待つ
  4. WSLのUbuntuに接続するために、画面右下の下記のアイコンをクリックする
  5. 「WSLへの接続」をクリックする
  6. 画面右下で「WSL: Ubuntu」と表示されていることを確認する
  7. ターミナルを起動するために「表示」>「ターミナル」をクリックする
  8. ターミナルで「cat /etc/lsb-release」を実行してUbuntuのバージョンを確認する

以上でVisual Studio CodeにWSL(拡張機能)を追加する作業は完了です。

Pythonの実行環境を構築

Pythonの実行環境をvenvで作成します。

  1. ターミナルで下記のコマンドを実行し、venvをインストールする
    $ sudo apt update
    $ sudo apt upgrade
    $ sudo apt install python3.10-venv
  2. ターミナルで下記のコマンドを実行し、仮想環境を作成する
    $ python3 -m venv venv
  3. ターミナルで下記のコマンドを実行し、仮想環境を起動する
    $ source venv/bin/activate
    (venv)$
  4. ターミナルで「(venv)」が表示されていることを確認する

以上でPythonの実行環境を構築作業は完了です。

djangoのインストール

djangoのバージョン4.2.6をインストールします。

  1. Pythonの実行環境を起動させた状態で、pipコマンドでインストールする
    (venv)$ pip install django==4.2.6

djangoプロジェクトの作成

プロジェクトはdjangoのコマンドで作成します。djangoを構成するファイルを自動で作成してくれます。

  1. ターミナルで下記のコマンドを実行し、プロジェクトを作成する
    ここでは「todoproject」を作成する。コマンドの最後に「.」を付ける

    (venv)$ django-admin startproject todoproject .
  2. Webサーバを起動してWebアプリケーションを利用可能な状態にする
    (venv)$ python3 manage.py runserver
  3. Webブラウザで「https://127.0.0.1:8000」にアクセスすると下記が表示される

以上でプロジェクトの作成は完了です。

コメント

タイトルとURLをコピーしました