こんにちは!気ままなねぎとろ♪です。😊
猫が好きすぎて、ついに「猫グッズ紹介サイト」を自作することにしました! 使う技術は、PythonのWebフレームワーク「Django」です。プログラミング経験は少しあるものの、Djangoは全くの初心者。
今回は、Geminiに手伝ってもらいながら、Djangoのインストールから、データベースに登録した最初のデータをブラウザに表示するまで、一気に駆け抜けてみました!
初心者がどこでつまずいて、どう解決したのか、リアルな奮闘記としてお届けします。 これからDjangoを始めるあなたの、ちょっとした道しるべになれたら嬉しいです!
- 1. Djangoのインストールとプロジェクト作成
- 2. データベースの設計図を作る(models.py)
- 3. データベースを組み立てる(マイグレーション)
- 4. 司令室(管理画面)の準備
- 5. ショーウィンドウを作る(Views & Templates)
- 6. 入り口を作る(urls.py)
- 7. そして、ついにページが…!
- おわりに
1. Djangoのインストールとプロジェクト作成
まずは、建築ツールであるDjangoを自分のPCにインストールするところから! VSCodeのターナルで、この呪文を唱えます。
pip install django
💥いきなりつまずきポイント①:PATHが通ってない!
インストールは成功したのに、django-admin --versionで確認しようとすると「そんなコマンド知らないよ!」と怒られちゃいました。
Geminiに聞いたところ、これは「道具箱の場所をPCが知らない」という、Windowsでよくある現象だそうです。 これ以降、django-adminの代わりにpython -m djangoを使うことで、無事に解決!
# プロジェクト(サイトの骨組み)を作成
python -m django startproject nekogoods_project .
# アプリ(猫グッズ機能)を作成
python manage.py startapp goods
無事に、サイトの土台が完成しました!

2. データベースの設計図を作る(models.py)
次に、どんな情報をサイトに保存するか、データベースの設計図models.pyを書いていきます。 今回は、こんな感じにしてみました。
from django.db import models
# Create your models here.
class Product(models.Model):
name = models.CharField('商品名', max_length=200)
description = models.TextField('商品説明')
price = models.IntegerField('価格')
image_url = models.URLField('商品画像のURL', max_length=200)
affiliate_url = models.URLField('アフィリエイトURL', max_length=200)
def __str__(self):
return self.name
商品名や価格、アフィリエイトURLなどを保存できるようにしています。
3. データベースを組み立てる(マイグレーション)
設計図ができたら、それを元に本物のデータベースを作ります。 この作業を「マイグレーション」と呼ぶそうです。これも呪文を2回唱えるだけ!
# 組み立て指示書を作成
python manage.py makemigrations
# 指示書を元に、データベースを組み立て!
python manage.py migrate
これを実行すると、db.sqlite3という、データベースファイルが誕生しました!
4. 司令室(管理画面)の準備
Djangoには、作ったデータベースを簡単に見たり、編集したりできる「管理画面」という最高の機能がついています。 これを使うために、管理人(スーパーユーザー)を作成し、admin.pyに「Productモデルも管理画面で使いますよ〜」と登録しました。
# 管理人を作成
python manage.py createsuperuser
from django.contrib import admin
from .models import Product
admin.site.register(Product)
そして、python manage.py runserverで開発用サーバーを起動して、/adminにアクセス! ログインすると、自分だけの秘密の司令室に入れて、なんだかテンションが上がります!

5. ショーウィンドウを作る(Views & Templates)
いよいよ、お客さんに見えるページ作りです! データベースの情報を、どのようにお客さんに見せるかを決めます。
views.py(司令官): データベースから「全商品を持ってきて!」と命令。product_list.html(デザイナー): 司令官が持ってきた商品を、HTMLでおしゃれに飾り付け。
forループを使って、データベースにある商品を一つずつ表示していきます。
6. 入り口を作る(urls.py)
司令官とデザイナーの準備ができても、お客さんをそこに案内しないと意味がありません。 そのための「案内標識」がurls.pyです。
💥いきなりつまずきポイント②:ModuleNotFoundError!
Geminiに言われた通りに2つのurls.pyを編集したはずが、「goods.urlsが見つからない」というエラーが…。 ファイル名も合ってるし、__init__.pyもある…。なんで!?とパニックに。
原因は、nekogoods_project/urls.pyを編集した時に、元々書いてあった説明文("""...""")を消してしまったことでした。あんなただのコメントに見えるものが、そんなに大事だったなんて…。
正しいコードに直して、サーバーをCtrl+Cで手動再起動したら、無事にサーバーが起動!
7. そして、ついにページが…!
ブラウザでhttp://127.0.0.1:8000/にアクセスすると…ついに!

管理画面で登録した「肉球型修正テープ」の情報が、ちゃんと表示されていました! (最初は画像が表示されませんでしたが、アフィリエイト用の画像URLではなく、画像の「アドレス」を直接指定することで解決しました。)
おわりに
というわけで、Djangoインストールから、最初のデータ表示までの道のりでした! エラーが出るたびに「うわー!」ってなりましたが、一つずつ解決していく過程は、なんだかRPGのクエストみたいで、すごく楽しかったです。
何より、自分の手でWebアプリが動く感動は、本当に大きいですね!
これからは、このサイトの見た目をCSSでおしゃれにしたり、機能を追加したりしていきます。 その過程も、またブログで報告しますね!
最後まで読んでいただき、ありがとうございました!
気ままなねぎとろ♪でした。😊