別記事「[まとめ]Django開発の流れ」ではローカル(Windows10)Anaconda環境(Python/Django/SQLite)で試していたが、今回はDocker(Anacondaコンテナ)上でほぼ同じ(今回はMySQL環境も(一部)追加構築する)手順を流してみたので、以下はその作業記録です。
1.開発環境作成
(1)Docker環境作成
※手順:
(a)別記事「[Review]Hyper-V(Windows10)にDocker環境(MySQL~DB)一括構築」参照
※MySQLコンテナ構築追加あり
※追記予定:MySQLコンテナ起動時の
(2)(docker)Anaconda(GUI)環境作成
※手順:
(a)別記事「[基礎知識]Docker上のAnacondaコンテナをGUI(Anaconda Navigator)で使用する手順〔Dockerfile単体ビルド〕編」参照
(b)別記事「[基礎知識]Docker上のAnacondaコンテナをGUI(Anaconda Navigator)で使用する手順〔Dockerfile、docker-compose.yml〕編」参照
(c)上記環境構築済の場合、
①Docker起動
②Anacondaコンテナ(GUI用)起動:
docker start -ai anaconda-gui-container
③Xサーバ起動
④((上記)Anacondaコンテナ(GUI用)内で)Anaconda Navigator起動
anaconda-navigator
(3)(conda)仮想環境作成
(a)別記事「[基礎知識]Anacondaコンテナ内部の操作用プロンプト表示方法」参照
(b)別記事「[基礎知識]Windows10で特定コマンド実行用ショートカットアイコン作成手順」参照
↓ デスクトップにショートカット作成しておくと以降の作業が楽になります。
・docker ps
・docker exec -it [anacondaコンテナ名] /bin/bash
(c)別記事「[まとめ]Django開発の流れ→「1.仮想環境作成/(2)仮想環境作成」」参照
・conda create -n <仮想環境名> python=<バージョン>
※仮想環境リスト確認:
・conda env list
※作成した仮想環境削除:
・conda env remove –name <仮想環境名>
(4)(conda)仮想環境有効化
・conda activate <仮想環境名>
※上記で有効化された仮想環境に※印が移動しています。
(5)(conda)ライブラリ検索・インストール
・conda search <ライブラリ名>=<バージョン>
※上記で表示されないライブラリ
・conda install <ライブラリ名>==<バージョン>
※ここでは、「conda-forge」チャンネル追加登録後
・mysqlclient
・wikipedia
もインストール実施。
(a)別記事「[基礎知識]Python向けパッケージチャンネル、利用方法について」参照
2.Djangoプロジェクト作成
基本的な作業の流れは、別記事「[レビュー]Python&Django~初めてのアプリ作成にチャレンジ~♪その1「入門編」(3/5)」参照だが、今回anacondaコンテナ内(bash)である為、Windowsローカル環境におけるanacondaではなく、anaconda power shellが使用できない。またWindowsエクスプローラやDOSコマンドもそのままでは使用できない。
ここではAnacondaコンテナ内部の操作用プロンプトを表示して作業を行う。
(1)Anacondaコンテナ内部の操作用プロンプト表示
※詳細は別記事「[基礎知識]Anacondaコンテナ内部の操作用プロンプト表示方法」参照。
※補足
上記プロンプト表示時、作業用仮想環境(選択初期化の為)有効化が必須。
・conda env list
・conda activate envtest001
(3)作業フォルダ作成・移動
※今回作業フォルダ(作成):/app/01
(4)新規プロジェクト作成
・django-admin startproject <新規作成プロジェクト名>
※今回新規作成プロジェクト名:djtest01
実例:
django-admin startproject djtest01
※作業フォルダ配下に、
プロジェクトフォルダ:djtest01
その配下に、
manage.pyファイル
djtest01フォルダ
が作成されています。
3.Djangoアプリケーション作成
(1)フォルダ移動
※manage.py格納場所に移動
(2)Djangoアプリケーション作成
※今回作成アプリケーション名:djtest01app
・python manage.py startapp <作成アプリケーション名>
※python manage.py startapp djtest01app
※作業フォルダ配下に、
プロジェクトフォルダ:djtest01
その配下に、
manage.pyファイル
djtest01フォルダ
以外に、
djtest01appフォルダ
が作成されています。
4.VS Code / Dev Container 拡張機能
上記環境(環境名は※1)に作成したDjangoプロジェクト(PJ名は※2)はVS Codeで編集する。
※1 ・Anacondaコンテナ名:anaconda-gui-container
・conda仮想環境名:envtest001
※2 ・Djangoプロジェクト名:djtest01
※3 Djangoプロジェクトを、VS Codeの「Dev Container拡張パック」(インストール情報はこちら(Dev Containers tutorial))によって、表示・編集できることを確認しました。
(1)VS Code / Dev Container 拡張機能インストール
※手順:
(a)別記事「[基礎知識]VS Codeリモート開発拡張パックについて」参照。
(b)もし(新規作成したconda仮想環境有効化後に)VS Code上にDockerアイコンが無い場合:
Docker拡張機能も追加後再起動する。
(2)編集環境確認
プロジェクトフォルダ:djtest01 その配下の、 manage.pyファイル djtest01フォルダ djtest01appフォルダ が表示・編集可能になっていることが分かります。
(3)Djangoプロジェクト初期動作確認(ブラウザ表示)
①Anacondaコンテナ内部操作用プロンプト(Bash)起動
(a)別記事「[基礎知識]Anacondaコンテナ内部の操作用プロンプト表示方法」参照
(b)別記事「[基礎知識]Windows10で特定コマンド実行用ショートカットアイコン作成手順」参照
②作業フォルダ移動
※manage.py格納フォルダに移動。
cd app/01/<Djangoプロジェクトフォルダ>
※今回は、<Djangoプロジェクトフォルダ>=djtest01
③conda仮想環境有効化
conda env list
conda activate <conda仮想環境>
※今回は、<conda仮想環境>=envtest001
※上記プロンプト表示時は有効仮想環境がデフォルト環境に戻っている為、再度実施。
④-1. makemigrations実施
python manage.py makemigrations <対象アプリケーション名>
実例:
python manage.py makemigrations main1
※main1
アプリケーション内のモデルクラスを変更した場合に実施。
④-2. migrate実施
python manage.py migrate
※仮想環境内変更を再度反映。
⑤DjangoWebサーバー起動
python manage.py runserver 0.0.0.0:8000
⑥ブラウザ表示
ブラウザで、http://127.0.0.1:8000 を表示
ここ迄で、ひとまずDjangoアプリの表示確認は問題ないことを確認できました。
6.Djangoアプリケーション作成(viewsから直接出力表示)
(a)別記事「[レビュー]速習Django3(4/6)」参照
7.Djangoアプリケーション作成(テンプレート経由で出力表示)
(a)別記事「[レビュー]速習Django3(6/6)」参照
8.トラブルシューティング
上記で(特にエラーメッセージも表示されず、Djangoサイトは表示されるのにも関わらず)MySQLのテーブルからデータを表示できない場合は、以下の手順で状況確認します。
8-1.PythonのPath設定:
VS Codeの設定:
・別記事「[基礎知識]Anaconda仮想環境のPythonインタープリタのパス設定方法(VS Code使用)」参照