Python+Django REST Frameworkで作ったAPIをHerokuにデプロイしてみた
Django-toolbeltのインストール
https://pypi.org/project/django-toolbelt/
pip install django-toolbelt
requirements.txt
DBの設定切替
pip freeze > requirements.txt
Django REST Frameworkはデフォルトではsqlite3を使うようになっていますが、Herokuではsqlite3が使用できません。
HerokuはPostgresが使えるので、そのための設定をしていきます。
wsgi.pyの編集
import os
from dj_static import Cling
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = Cling(get_wsgi_application())
settings.py
ALLOWED_HOSTS = ['*']
Procfile
プロジェクトフォルダの直下に置きます。(manage.pyと同階層)
web: gunicorn myproject.wsgi --log-file -
runtime.txt
これもプロジェクトフォルダの直下に置きます。
python-3.9.1
Herokuへのデプロイ
heroku git:remote -a myapp-2022-1
git add .
git commit -am "initial commit"
git push heroku master
デプロイが正常に完了したらマイグレーションを実行します。
heroku run python manage.py migrate
heroku run python manage.py createsuperuser
settingsを切り替えるようにした際に参考した情報
https://qiita.com/ukisoft/items/8912d0a66151609d9ff9
以下のようにherokuに登録
heroku config:set DJANGO_SETTINGS_MODULE=myapi.settings.production
デプロイすると管理サイトのCSSが崩れる
以下の情報を参考に解決。
STATIC_ROOT = str(BASE_DIR) + "/" + "static"
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('api.urls')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
ディスカッション
コメント一覧
まだ、コメントがありません