djangoをpythonanywhere上にデプロイする
今回は簡単なWebアプリモドキをdjangoで作って、現状pythonWebアプリが無料でデプロイできる唯一(?)の環境であるpythonanywhere上にデプロイしてみる。
結果的に再アップする方法ほかにないんかって感じになったが。
1. ローカル環境構築
ローカル側はあんまし言うことないので、見出しだけ書いておく
1. pythonインストール
今回は現在最新バージョンである3.13にした。
2. pycharmインストール
3. djangoインストール
これも最新バージョンにした。
4. 追加ライブラリインストール
今回はdjango_bootstrap5を入れた。
特に理由はないが、最新にしたいからね。
2. djangoの構築
他のページを参考に、それっぽい見た目だけで中身は何もないページをサンプルとして作成。
1. データベース設定
python manage.py migrate
2. 動作確認
python manage.py runserver
問題なかったらctrl + cで抜ける
3. テンプレートからアプリを生成
参考先ページに合わせて、app_folderをアプリ名にした。(適当)
python manage.py startapp app_folder
4. ソースの用意
以下の形でソースを作った。
解説はあとで書く。
5. ローカルテスト
以下コマンドを実行して、http://127.0.0.1:8000/
にアクセスする。
画面が表示されたらOK。
python manage.py runserver
3. pythonanywhereにデプロイ
本題。
1. レポジトリをgithubにプッシュする
2. pythonanywhereにユーザ登録する
3. pythonanywhereのAPIトークンを作成する
ここで作成するAPIトークンは、pythonanywhere ⇔ pythonanywhere上の自作アプリ間の通信で使用するらしい。
なので、とりあえず作成しておけば良い。
4. pythonanywhere環境 ライブラリインストール
pythonanywhereサイト上で、bashコンソールを開く。
pythonanywhereコントロール用ライブラリをインストールする
pip3.13 install --user pythonanywhere
5. pythonanywhere環境 ヘルパーを使用してgithubレポジトリから環境を読み込み
以下を実行すると、仮想環境作成とか、レポジトリのcloneとかしてくれる。
ただ今回の場合は、ヘルパーではdjango_bootstrap5がインストールされず、エラーが出る。
pa_autoconfigure_django.py --python=3.13 https://github.com/yuki-murayama/AnuualTargetFY2025-Django.git
6. pythonanywhere環境 不足ライブラリのインストール
pythonanywhereのWebタブから、上で登録したvenv環境のコンソールを開ける。
開いたら、以下を実行して不足ライブラリをインストールする。
pip3.13 install django_bootstrap5
7. デプロイ確認
pythonanywhereのWebタブの一番上にデプロイしたアプリのURLがある。
アクセスして、表示されるか確認する。
https://[ユーザ名].pythonanywhere.com/
4. 再デプロイ
再デプロイする場合は、githubにプッシュした上で、pythonanywhereコンソールに入って、ヘルパーに--nukeを付けて実行する。
github actionsから実行する方法とかがあれば、自動デプロイとかできるのだが…
pa_autoconfigure_django.py --nuke --python=3.13 https://github.com/yuki-murayama/AnuualTargetFY2025-Django.git
Discussion