はじめに
このロードマップは、
- 「DjangoをHerokuにデプロイしたいけど、何から手をつければいいか分からない」
- 「settings.pyや静的ファイル、DB、画像まわりをちゃんと理解したい」
という人向けに、ゼロから本番デプロイ+Cloudinaryでの画像配信までを5本の記事に分けてまとめました。
このロードマップでできるようになること
このシリーズを順番に進めると、最終的に次の状態まで到達できます。
- HerokuにDjangoアプリをデプロイできる
- 開発用と本番用のsettingsを分けて管理できる
- CSS/JS/画像などの静的ファイルを本番でも正しく配信できる
- Heroku Postgresを使って本番用DBを構築できる
- Cloudinaryに画像をアップロードして、URL経由で表示できる
全体の流れ
ざっくりとした流れはこんな感じです。
- Herokuアカウント作成・CLIインストールなどの準備
- Djangoの
settings.pyを開発用と本番用に分割 - WhiteNoiseを使って静的ファイル(CSS,js,画像など)を配信
- Heroku Postgresを追加してDBを本番用に切り替え
- Cloudinaryで画像をクラウドに保存&配信
各ステップの概要
① Herokuデプロイの準備
- Herokuアカウント登録
- Heroku CLIのインストール
- Herokuアプリ作成
- 環境変数を使うためのライブラリ導入 など
→ 詳細: Herokuデプロイ①の準備
② settings.pyを開発用と本番用に分割
-
base.py/local.py/production.pyという3分割の考え方 -
DEBUGやALLOWED_HOSTSなど、本番で変えるべき設定 -
SECRET_KEYやDB接続情報を環境変数から読み込む方法
→ 詳細: Herokuデプロイ②Djangosettings.pyを開発用と本番用で分割
③ 静的ファイル(CSS,js,画像など)の利用設定
-
STATIC_URL/STATIC_ROOT/STATICFILES_DIRSの役割 -
collectstaticが何をしているのか - WhiteNoiseを使ってHeroku上でCSS/JS/画像を配信する手順
- よくあるハマりポイントとエラー例
→ 詳細: Herokuデプロイ③静的ファイル(CSS,js,画像など)の利用設定
④ DB設定(Heroku Postgres)
- Heroku Postgresアドオンとは何か
-
heroku addons:create heroku-postgresql:essential-0でDBを追加 -
DATABASE_URLをDjangoのDATABASESに反映させる方法 - ローカルと本番でDBを切り替える設計
→ 詳細: Herokuデプロイ④DBの設定
⑤ Cloudinary設定(画像をクラウドに保存して配信)
- なぜCloudinaryが必要なのか(MEDIA_ROOTだけではダメな理由)
-
heroku addons:create cloudinary:starterでCloudinaryアドオンを追加 -
CLOUDINARY_URLからCLOUD_NAME,CLOUDINARY_API_KEY,CLOUDINARY_API_SECRETを取り出して環境変数へ設定 -
STORAGESとCLOUDINARY_STORAGEの設定 - DjangoのモデルからCloudinaryに画像をアップロードして表示する流れ
→ 詳細: Herokuデプロイ⑥cloudinary設定
最後に
Django×Herokuのデプロイは、一度通しで経験できたので別アプリもデプロイをして慣れていきたいと思いました。