#概要
DjangoアプリをPythonAnywhereにデプロイした際の手順をまとめました。
なお本稿は、PythonAnywhereでアカウント登録、GitHubにpushしていることを前提に進めます。
環境:python3.8.10
django3.2.6
**事前準備:**PythonAnywhereでアカウント登録、GitHubにpush
・PythonAnywhereのアカウント登録→PythonAnywhere公式サイト
・GitHubにpushする方法→こちらの記事を参考にしてみてください。
##1. 下準備編
###1.1 APIトークンを発行する
PythonAnywhereのダッシュボードを開いてください。
画面右上の「Account」からAccountページに移動します。
「API Token」のタブに切り替え、「Create new API token」のボタンを押下し発行します。
###1.2 PythonAnywhereをインストールする
画面左上のPythonAnywhereのロゴを押下してダッシュボードに戻ります。
「New console:」の下にある「Bash」ボタンを押下して、PythonAnywhereのコマンドラインを開いてください。
以下のコードを実行し、PythonAnywhereをインストールします。
※pip3.6
の部分については、自分の環境に合わせてバージョン指定します。
$ pip3.6 install --user pythonanywhere
Successfully installed (...) pythonanywhere- (...)
の行で終了したら、インストール成功です!
##2. デプロイ編
###2.1 GitHubからアプリを自動的に構成する
以下のコードを実行します。
※python=3.6
の部分については、自分の環境に合わせてバージョン指定します。
※python=3.6
の後には、あなたのGitHubリポジトリのURLが入ります。
このコードを叩くと、仮想環境の設定や、データベースの設定など諸々を自動で行ってくれます。
$ pa_autoconfigure_django.py --python=3.6 https://github.com/hogehoge.git
###2.2 データベースの管理者アカウントを作成
仮想環境に入って、管理者アカウントを作成します。
※「ユーザー名」は、PythonAnywhereのユーザー名です。
$ cd ユーザー名.pythonanywhere.com #homeから移動
$ workon ユーザー名.pythonanywhere.com #仮想環境に入る
$ python manage.py migrate
$ python manage.py createsuperuser #ユーザー名・パスワードはメモしておく!
###2.3 WSGI Configuration Fileの編集
再度PythonAnywhereのダッシュボードに戻り、「Web」に移動します。
「Code」の「WSGI configuration file」をクリックします。
2箇所だけ次のように編集してください。
$ path = '/home/ユーザー名/リポジトリ名/manage.pyがあるディレクトリ'
$ os.environ ['DJANGO_SETTINGS_MODULE'] = 'settings.pyがあるディレクトリ名.settings'
編集が終わったら、画面右上の「Save」を押下して保存します。
###2.4 settings.pyの編集
先ほど編集したWSGI Configuration Fileの上にある「Working directory」をクリックしてください。
settings.pyに移動したら、以下を追加して「Save」ボタンで保存します。
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
ALLOWED_HOSTS = ['localhost', '.pythonanywhere.com']
現時点でサイトが見えるようになっていますが、CSSは反映されていません。
##3. staticファイル設定編
###3.1 staticファイルを反映する
PythonAnywhereのダッシュボードに戻り、「Bash」ボタンを押下しコマンドラインを開きます。
$ python manage.py collectstatic #静的ファイルを集める
上のコードを実行すると、パスが最後の方に出力されるのでそれをコピーしてください。
###3.2 staticファイルのパスを設定する
PythonAnywhereのダッシュボードに戻り、「Web」に移動します。
「Static files:」でstaticファイルのパスを設定します。
Directory下の青字になっている部分をクリックし、手順3.1でコピーしたパスを張り付けてください。
###3.3 サイトを開いて確認する
「Web」のページを上にスクロールし、「Reload xxxx.pythonanywhere.com」ボタンを押下し、これまでの作業を反映させます。
「Web」ページ上部にある「Configuration for ...」の部分をクリックすると、ローカル環境で見えていたDjangoアプリが見れるはずです。