はじめに
未経験からエンジニア職の内定をいただき、入社まで残り2週間。
業務スタックである Nuxt + Django に少しでも慣れておきたくて、自作アプリの開発をスタートしました。
この記事は、その第一歩である 「Djangoの環境構築をゼロから始めて、開発サーバーでロケット画面を表示するまで」 の作業ログです。
想定読者
- これから Python / Django を学び始める人
- 環境構築でつまずいた経験がある人
この記事のゴール
ブラウザで以下の画面を表示できる状態になること。
http://127.0.0.1:8000/
→ 🚀 ロケットが飛んでいる「The install worked successfully!」画面
環境
- macOS (Apple Silicon)
- ターミナル: zsh
- エディタ: VSCode
- Docker は今回使わない(venv で進めます)
全体の流れ
この記事では以下を順番にやります。所要時間はおよそ1〜2時間。
- Python 3.11 のインストール
- GitHub リポジトリの作成と SSH 接続設定
- リポジトリのクローンと仮想環境の作成
- Django のインストール
- Django プロジェクトの作成
- 開発サーバーの起動 → ロケット画面確認
- 最初のコミットと push
Step 1: Python 3.11 をインストール
なぜ Python 3.11 なのか
Mac には最初から python3 が入っていますが、これは Mac標準のシステム用 Python(3.9系) で、開発には使わない方が安全です。理由は、システムが内部で使っている Python を勝手にいじると OS の動作に影響することがあるから。
なので、Homebrew で開発用の Python を別途インストール します。
インストール手順
Homebrew が入っていない場合は先にインストール:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Python 3.11 をインストール:
brew install python@3.11
確認:
python3.11 --version
# Python 3.11.15 ← こんな感じで表示されればOK
注意: コマンド名は python3.11 で明示する
Mac には複数の Python が同居している可能性があるので、バージョンを明示する習慣 が安全です。
python3.11 --version # Homebrew で入れた 3.11(これを使う)
python3 --version # システム標準の 3.9(触らない)
このあと「仮想環境」を作ると、その中では python というシンプルな名前で 3.11 が使えるようになります。
Step 2: GitHub リポジトリの作成と SSH 設定
リポジトリの作成
GitHub にログインして以下を設定:
- Repository name: 好きな名前でOK
- Public / Private: お好みで
- Add a README file: ✅
- .gitignore template: Python を選択
- License: なし
.gitignore で Python を選んだ理由
.gitignore は「Git で記録しないファイルのリスト」です。
Python プロジェクトでは、以下のような 記録すべきでないファイル が大量に発生します:
-
__pycache__/(Python のキャッシュ) -
venv/(仮想環境フォルダ、数百MBになる) -
db.sqlite3(ローカル DB、テストデータが入る) -
.env(環境変数、パスワードや APIキーが入る)
これらを毎回手書きするのは面倒なので、今回はGitHub が用意してくれているテンプレートを使いました。
SSH の設定(HTTPS との違い)
GitHub にコードを push するには認証が必要です。方式は主に2つ:
| 方式 | セットアップ | 使い勝手 | 推奨 |
|---|---|---|---|
| HTTPS | 簡単 | 毎回認証 | 初心者向け |
| SSH | 少し手間 | 一度設定すれば自動 | 業務標準 |
業務では SSH が前提になっていることが多い ので、今のうちに慣れておきます。
SSH 鍵(Ed25519)の生成
ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519_github
オプションの意味:
-
-t ed25519: 鍵の方式(最新の推奨方式) -
-C "...": コメント(GitHub に登録しているメールアドレス) -
-f ~/.ssh/id_ed25519_github: 出力ファイル名
パスフレーズを求められますが、設定推奨です(後で Keychain に保存すれば毎回入力不要)。
~/.ssh/config の設定
複数の鍵を使い分けるための設定ファイルを作成:
touch ~/.ssh/config
chmod 600 ~/.ssh/config
code ~/.ssh/config
以下を貼り付け:
# GitHub (Ed25519 key for personal use)
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github
UseKeychain yes
AddKeysToAgent yes
IdentitiesOnly yes
Keychain に鍵を登録
ssh-add --apple-use-keychain ~/.ssh/id_ed25519_github
これで再起動後もパスフレーズ入力が不要になります(Mac の Keychain が自動で読み込んでくれる)。
公開鍵を GitHub に登録
公開鍵の中身をクリップボードにコピー:
pbcopy < ~/.ssh/id_ed25519_github.pub
GitHub の Settings → SSH and GPG keys → New SSH key で:
-
Title:
MacBook (Ed25519)など、識別しやすい名前 - Key: クリップボードから貼り付け
接続テスト
ssh -T git@github.com
初回は「このサーバー信頼する?」と聞かれるので yes で続行。
成功すれば以下が表示されます:
Hi your_username! You've successfully authenticated, but GitHub does not provide shell access.
これで GitHub と SSH で繋がりました。
Step 3: リポジトリのクローンと仮想環境の作成
リポジトリをクローン
cd ~/Projects # 作業フォルダに移動(任意の場所でOK)
git clone git@github.com:your_username/ronten.git
cd ronten
仮想環境とは
プロジェクトごとに独立した Python の箱を作る仕組み です。
なぜ必要か:
- プロジェクトAでは Django 4 を使いたい
- プロジェクトBでは Django 5 を使いたい
- 同じ Python に両方入れると競合する
仮想環境を使うと、プロジェクトごとに「このプロジェクト専用の Django」を持てます。
仮想環境を作成して有効化
python3.11 -m venv venv
source venv/bin/activate
成功するとプロンプトに (venv) がつきます:
(venv) your_name@your_mac ronten %
これが「仮想環境の中にいる」サイン。以降のコマンドはこの状態で実行します。
動作確認
python --version # Python 3.11.15
pip --version # pip ... (venv の中の pip)
仮想環境の中では、python と打つだけで 3.11 が使えるようになります。
Step 4: Django のインストール
pip install django djangorestframework django-cors-headers
3つ同時に入れている理由:
- django: Django 本体
- djangorestframework: API を作るため(後で使う)
- django-cors-headers: フロントエンドからアクセスを許可するため(後で使う)
後で必要になるものを先に入れてしまう のが、何度もインストールコマンドを打たない工夫です。
確認:
django-admin --version
# 5.2.14 など
Step 5: Django プロジェクトの作成
django-admin startproject config .
末尾のドット(.)は絶対に忘れない
ここが地味に重要です。
- ドットあり: 現在のフォルダ直下にプロジェクトファイルが作られる ✅
-
ドットなし:
config/config/のように入れ子になってしまう ❌
実行後の構成:
ronten/
├── README.md
├── .gitignore
├── venv/ ← 仮想環境(.gitignoreで除外済み)
├── config/ ← Django プロジェクトの設定
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py ← Django のコマンド入口
config という名前にしたのは、Django の慣習で「プロジェクト全体の設定置き場」を config と呼ぶことが多いからです。
Step 6: 開発サーバーを起動してロケット画面を見る
python manage.py runserver
注意: manage.py のスペル
私はここで manage.pv とタイポして数秒詰まりました。
「.py は Python ファイルの拡張子」 と覚えると、タイポしにくくなります。
タイポ防止には タブ補完 が有効です。python manage. まで打って Tab キーを押すと manage.py が自動補完されます。
起動成功時の表示
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). ...
Run 'python manage.py migrate' to apply them.
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
「unapplied migration」の警告は今は無視してOK(次のステップで対応します)。
ブラウザで確認
http://127.0.0.1:8000/
🚀 ロケットが飛んでいる画面 が表示されれば成功です。
「The install worked successfully! Congratulations!」のメッセージが見えるはず。

ターミナルにもアクセスログが流れます:
[15/May/2026 06:48:40] "GET / HTTP/1.1" 200 12068
200 は HTTP ステータスコードで「成功」を意味します。これが見えれば動いている証拠です。
サーバーを止める
Ctrl + C でサーバーを止めて、次のステップへ。
Step 7: GitHub に push
git status
以下のように表示されるはず:
Untracked files:
config/
manage.py
ステージング・コミット・push:
git add config/ manage.py
git commit -m "Set up Django project with config and manage.py"
git push
GitHub のリポジトリページをリロードして、config/ と manage.py が反映されていればゴール。
詰まりそうなポイントまとめ
実際にやってみて、ハマりやすかった/迷ったポイントをまとめます。
.gitignore を後から追加する
リポジトリ作成時に .gitignore を選び忘れても、GitHub上で後から追加できます:
- リポジトリの「Add file」→「Create new file」
- ファイル名に
.gitignoreと入力 - 右上の「Choose a .gitignore template」から
Pythonを選択
ただし、一度コミットしたファイルは .gitignore に書いても無視されません。なるべく早く設定するのが安全。
おわりに
ここまでで Phase 0(環境構築) が完了しました。
次は Phase 1: Django だけで CRUD を一周 に進みます。具体的には:
- 3行要約を保存するモデルの作成
- マイグレーション
- 管理画面で CRUD ができる状態
続編も書く予定なので、よかったらフォローしておいてください。
同じ場所で詰まっている人の助けになれば幸いです。