― 学習塾経営者が本番運用するまでのリアル ―
目次 閉じる
1|なぜ Django を選んだのか
私は学習塾を経営しています。
授業記録、宿題管理、画像保存、テスト結果の蓄積…。
エクセルでは限界がありました。
「自分で作れないか?」
そう思って選んだのが Python + Django。
理由は単純です。
- Pythonが読みやすい
- 管理画面が最初からある
- Webアプリが作れる
でも、当時の私はこう思っていました。
「チュートリアル通りやれば、そのまま本番でも動くだろう」
これが最初の落とし穴でした。
2|Model設計でつまずいた話
最初に作ったのは「Lessonモデル」。
class Lesson(models.Model):
lesson_type = models.CharField(max_length=20)
day = models.DateField()
subject = models.CharField(max_length=20)
contents = models.TextField()
class_img = models.ImageField(upload_to='lessons/')
一見、問題なさそうです。
でも現実は違いました。
- nullを許可すべき?
- defaultは必要?
- choicesにすべき?
- 将来拡張できる構造?
気づいたことがあります。
モデルは「データ」ではなく「世界観の定義」だ。
設計が甘いと、あとから必ず崩壊します。
ここで初めて理解しました。
Djangoは「コードを書く勉強」ではない。
構造を設計する勉強なんだと。
3|ローカルでは動くのに本番で死ぬ問題
ローカル環境では完璧でした。
でも本番(AWS Lightsail)に上げた瞬間。
真っ白。
500エラー。
原因は:
- STATIC設定ミス
- MEDIA_ROOTのパス
- Apache設定
- 仮想環境の読み込み
- 権限(daemon / bitnami)
ここで学んだこと。
「動く」と「運用できる」は別物。
ローカルは甘い。
本番は冷酷。
4|500エラー地獄
ブラウザにはこれだけ。
Internal Server Error
何が悪いのか分からない。
settings.pyを疑い、
BASE_DIRを疑い、
venvを疑い、
マイグレーションを疑い…。
でもエラーは出ない。
なぜか。
ログが出ていなかった。
5|ログが0バイトだった絶望
/opt/bitnami/projects/…/logs/log_20240913.log
サイズ:0バイト
「ログを見ろ」と言われるのに、ログが空。
原因はファイル権限。
Permission denied
ここで初めて学びました。
- ログは命綱
- 権限は見えない敵
- Linuxを理解しないとWebは動かない
Djangoの勉強をしていたはずなのに、
気づけばサーバー管理をしていました。
でもこの経験で、
問題が起きたら感情ではなくログを見る
という姿勢が身につきました。
6|それでもやってよかった理由
正直、何度もやめようと思いました。
でも今は断言できます。
Djangoをやってよかった。
理由は3つ。
① 抽象化思考が身についた
- Model = データの定義
- View = ロジック
- Template = 表現
これは経営と同じ構造です。
② 「再現性」を理解した
本番で動く設計をする。
環境差を潰す。
これはビジネスでも同じ。
③ 自己効力感が爆発する
自分で作ったシステムが、
本番で動く。
これは強烈です。
「自分で世界を作れる」
この感覚は、人生を変えます。
また、プログラミングスクールを受講するのもおすすめです。
特に、私もそうだったんですが、コーチや講師が付いてくれると尚、学習に緊張感が出て、
学ぶスピードは爆速になります。
私の妻もDMM WEBキャンプで、コーチ付のレクチャーを受けて、受講して、しっかり学べたと言っているので、
おすすめです!
▼DMM WEBCAMMPは下記の画像をクリック!

7|独学の質を変えたChatGPTの使い方
私は正直に言うと、
ChatGPTなしではここまで来られなかったと思います。
でも、多くの人が間違った使い方をしています。
❌ よくある間違い
- 「エラー出ました。どうすればいいですか?」
- コードを全部貼って丸投げ
- なんとなく聞く
これだと成長しません。
✅ 私がやった使い方
① 状況を構造化して投げる
例:
- ローカルでは動く
- 本番(AWS Lightsail)で500
- Apache使用
- 仮想環境あり
- ログが0バイト
こう整理してから聞く。
→ 原因が一気に絞られる。
② 仮説を持ってから聞く
「権限が怪しい気がするが、確認方法は?」
こう聞くと、
ChatGPTは“答え”ではなく“検証方法”をくれる。
これが重要。
③ 設計レビューとして使う
- このModel設計で拡張性は?
- nullを許容するべき?
- choiceにすべき?
これは検索では出てこない。
ChatGPTは“思考の加速装置”になる。
ChatGPTで学んだこと
実は、Django以上に学んだのはこれです。
「質問の質が、成長の質を決める」
曖昧に聞けば、曖昧な答えが返る。
具体的に聞けば、具体的に返る。
これは教育でも同じ。
独学で学ぶ人へ伝えたいこと
もしこれからDjangoを学ぶなら、
❌ チュートリアルを完璧にやることがゴールではない
⭕ 自分の仕事を解決するものを作ることがゴール
Todoアプリより、
- 自分の家計簿
- 自分の事業や日常生活の管理
- 自分のブログCMS
のほうが100倍伸びます。
結論
Djangoで学んだのは、
- コードではなく構造
- 文法ではなく設計
- 技術ではなく再現性
- そして「やればできる」という感覚
プログラミングはスキルではない。
自己効力感を育てる装置です。
もしこれを読んで、
「やってみようかな」
と少しでも思ったなら、
それが最初の一歩です。
次に学ぶべきは、
フレームワークでも言語でもない。
自分が解決したい現実の課題です。

