Python WEBサービス

【DRF】venv仮想環境を用いて、DRFシステムで書籍管理システムを作成する(1)Djangoのセットアップ

2024/09/22

以前、Django、Vue3、Vuetify、MySQL、phpMyAdmin環境を作成する投稿をしましたが、もう一歩踏み込んで、「Django Rest Framework」(以下DRF)環境を構築し、ベタですが書籍の管理システムを作成します。
何回かに分けて、後で自分が見てもわかるように整理しながらポストしていきたいと思います。
今回は Django の画面が出るまでを目標とします。

1.venvで仮想環境、開発環境を作成する

前回は仮想環境に Docker Desktop を使用して作成しましたが、今回も同じように環境を作ろうと挑んだのですが、なぜかまったくうまくいかなかったので、今回は venv という仮想環境を使用して作成します。

1-1.準備

インストールするバージョン

今回用意する環境のバージョンは以下の通りとします。

  • OS : Windows11 WSL2 Ubuntu
  • Python : 3.12.2
  • Django : 4.2.3
  • Vue : 3
  • Vuetify : 3
  • djangorestframework : 3.14.0

目指すディレクト構造

最終的なディレクトリ構造は以下のようにしていきたいと思います。

パッケージマネージャーのアップデート

WindowsのWSL環境にUbuntuをインストールしている状態からスタートするのですが、まずはパッケージマネージャーのアップデートを行います。

1-2.仮想環境の作成

次に、いつもプロジェクトを作成している source ディレクトリに移動し、任意のディレクトリ(drf3)を作成します。

drf3/djangoディレクトリに移動し 「venv」 という名前で仮想環境を構築します。
はじめの venv はvenv モジュールを意味しており、仮想環境を作成することを指示するコマンドです。
後ろの venv は作成する仮想環境の名前を示しています。

環境作成が終わったら ls コマンドで現在のディレクトリの中にあるファイル、ディレクトリを確認してみます。
drf3/django ディレクトリ以下に、 venv ディレクトリが作成されており、さらにその中にはいくつかのファイルが出来上がっています。(アスタリスクになっている箇所は個人名なので伏せ字としています)

1-3.仮想環境の実行

プロジェクトをまとめているディレクトリの名前と被っているのでややこしいですが、 source コマンドで仮想環境を実行します。

ターミナルを再起動したときなど、必ずこのコマンドを実行して、仮想環境に入って下さい。
仮想環境に入ると、ターミナルに (venv) という印が付きます。これがあると、仮想環境に入っていることになります。

1-4.requirements.txt 作成

venv ディレクトリ以下に requirements.txt を作成し、開発で必要なパッケージを記載します。
読み方としてはリクワイヤメンツテキスト、と読むと思われます。

全然どうでもいいことですが、普通の英単語で「touch」を読むと野球漫画でもある「タッチ」となるのですが、初めてUNIX(当時はFreeBSDだった)を教えてくれた方が「トーチ」と読んで教えてくれたので、今でも「トーチ」と読んでしまいます。。。

シンプルに下記内容を書き込みます。

1-5.パッケージのインストール

以下のコマンドで requirements.txt に記載されたパッケージがインストールされます。

pip のバージョンが古いと言われたので、ついでにアップグレードしておきます。

これで、Django で開発する準備ができました。

2.Djangoプロジェクト作成

startproject コマンドでプロジェクトを作成します。
実行、作成するのは django ディレクトリです。
最後の 「.」 はディレクトリ直下にプロジェクトを作成するという意味です。

何が作成されたのかを確認します。

★(1) のディレクトリがプロジェクト名のディレクトリです。
★(2) のmanage.py が追加で作成されています。

2-1.VS Code で設定ファイルを編集する

ここで突然ですが WSL に接続するプラグイン(Remote WSL や Remote Developmentなどをお好みで)をインストール済みの VS Code を開き、 WSLに接続し、 config/settings.py を編集します。
ひとまず、最低限の設定(ホスト設定、言語、タイムゾーン)を行います。

config/settings.py

最初の ALLOWED_HOSTS の 設定はどこからでもアクセス可能という意味で、 開発環境のみ での設定です。
間違っても本番環境では、セキュリティの問題から ['*'] を指定しないように注意が必要です。

LANGUAGE_CODE は日本語で ja、
TIME_ZONE も日本で Asia/Tokyo を指定します。

2-2.データベースのセットアップ

migrate コマンドをすることでデータベースがセットアップされます。
先程の settings.py にも書かれていますが、デフォルトで sqlite3 がセットアップされる様になっています。

セットアップの様子は以下のようになります。

2-3.Web サーバーを起動する

Django が起動できるか確認します。
コマンドを実行するのは manage.py がある django ディレクトリです。

サーバを起動すると、下記のようなメッセージが表示されます。

http://localhost:8000/ にアクセスすると下記の画面が表示されます。

先ほどのメッセージにも書かれていますが、サーバを停止するには Ctrl + C を同時押しすることで停止することができます。
第1回目はここまでです。

-Python, WEBサービス
-, , , ,