👻

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. ソースの用意

以下の形でソースを作った。
解説はあとで書く。
https://github.com/yuki-murayama/AnuualTargetFY2025-Django.git

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