0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Django】DjangoアプリをPythonAnywhereにデプロイする方法

Last updated at Posted at 2021-09-10

#概要
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」のボタンを押下し発行します。
スクリーンショット 2021-09-07 170726.png

###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」に移動します。
スクリーンショット 2021-09-07 191609.png
「Code」の「WSGI configuration file」をクリックします。
InkedInkedスクリーンショット 2021-09-07 191736_LI.jpg
2箇所だけ次のように編集してください。

wsgi
$ 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」ボタンで保存します。

settings.py
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」に移動します。
スクリーンショット 2021-09-07 191609.png

「Static files:」でstaticファイルのパスを設定します。
Directory下の青字になっている部分をクリックし、手順3.1でコピーしたパスを張り付けてください。
スクリーンショット 2021-09-08 160054.png

###3.3 サイトを開いて確認する
「Web」のページを上にスクロールし、「Reload xxxx.pythonanywhere.com」ボタンを押下し、これまでの作業を反映させます。
スクリーンショット 2021-09-08 160405.png
「Web」ページ上部にある「Configuration for ...」の部分をクリックすると、ローカル環境で見えていたDjangoアプリが見れるはずです。:relaxed:

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?