Django DRF APIをPythonAnywhereにデプロイしてみた!
インスタ風アプリを作るにあたり、Django rest framework(※通称DRF)で作成したAPIをデプロイすることに。
その際選択肢としてはAWS(Ec2、Fargate)やHerokuなど候補はたくさんありましたが、
PythonAnywhereなるPythonAnywhereなるサービスの存在を知って、
これはいいと思い使ってみることに。
PythonAnywhereとは
PythonAnywhereとはpythonアプリの開発環境及びホスティングサービスです。
pythonanywhere内のbashでgithubからコードをクローンすることで、pythonアプリを動かしてくれる優れものです。
とりあえず始めよう
ここから登録します。
登録するダッシュボード画面が表示されます。
環境構築
環境構築といっても非常にやることは少ないです。
1.API Token の作成
2.ヘルパーツールのインストール、コードのクローン
これでアプリが動いてしまいます。早速やってみましょう。
API Token の作成
トップページ右上のAccountから、
Create a new API token ボタンをクリックして作成。
ヘルパーツールのインストール
ダッシュボードのNew consoleから $bashをクリックしてbashを起動します。
ここで諸々操作していきます。
$ pip3.6 install –user pythonanywhere
普段こんなコマンド打たないと疑問に思っても、これはpythonanywhereのお作法だと思ってOKです。
気にせずインストールしましょう。
$ pa_autoconfigure_django.py --python=3.6 https://github.com/ユーザー名/リポジトリ名.git --nuke
これもおまじないです。
このコマンドでgithubからクローンします。
ユーザー名とリポジトリ名は各々で変えてください。
これでクローンできるはずです。
恐らくほとんどは.envファイルなどの環境変数の設定ファイルはGitHubにアップロードはしてないでしょう。
なのでコンソールではエラーが発生していますが、コードのクローンは出来ている場合が多いのでダッシュボードのFilesから確認してみてください
スーパーユーザー作成
DBはリセットされるのでローカルと同じようにコマンドからスーパーユーザーを作成してください。
python manage.py createsuperuser
環境変数の設定
Filesでローカルで設定していた環境変数をそれぞれのファイルに直入力しちゃってOKです。
(ここの段階に抵抗がある場合はpythonanywhereはしようしない方がいいかも)
なぜならpython-decoupleという環境変数を扱うモジュールが動かなかったからです😭
コードは公開するわけではないので直入力しちゃおうという力技です。
ダッシュボードのWebAppsにデプロイされたアプリのURLが表示され公開されていれば完了です。
お疲れ様でした!
まとめ
最低限のコマンド操作でDjangoをデプロイ出来るので、
ポートフォリオや個人開発としてしばらく重宝しそうです。
Discussion