Djangoモデル入門|初心者が最初に知るべきORMの基本操作
生徒
「Djangoでデータを保存すると聞いたんですが、データベースって何ですか?」
先生
「データベースは、住所録や名簿のように、情報をきれいに整理して保管する箱だと考えると分かりやすいですね。」
生徒
「プログラミング未経験でも扱えますか?」
先生
「DjangoにはORMという仕組みがあり、難しい命令を書かなくても、Pythonだけでデータを扱えるようになっています。」
1. Djangoモデルとは何か?
Djangoモデルとは、データベースに保存する情報の設計図です。紙の申込書を作るときに、名前欄や年齢欄を決めますよね。それと同じで、モデルでは「どんなデータを」「どんな形で」保存するかを決めます。
モデルを使うことで、Pythonのコードを書くだけで、データの保存・読み込み・更新・削除ができます。この仕組みをORMと呼びます。ORMとは「Object Relational Mapping」の略で、難しそうですが「Pythonのオブジェクトとデータベースをつなぐ通訳」と考えると安心です。
2. ORMとは?初心者向けにやさしく解説
通常、データベースを操作するにはSQLという専用の言葉を使います。しかし初心者にとっては、とても覚えにくいです。DjangoのORMを使うと、SQLを書かずにPythonだけで操作できます。
たとえば「データを追加したい」と思ったら、Pythonで「保存する」と書くだけで裏側では正しいSQLが自動で動きます。自動翻訳機がついているようなイメージです。
3. モデルクラスの基本的な書き方
Djangoのモデルは、Pythonのクラスとして書きます。クラスとは「ものの設計図」です。ここでは「本」を管理する簡単なモデルを見てみます。
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
price = models.IntegerField()
この例では、本のタイトルと価格を保存できます。CharFieldは文字を保存する箱、IntegerFieldは数字を保存する箱です。max_lengthは文字数の上限を意味します。
4. フィールドの種類を理解しよう
モデルでは、保存したいデータの種類に応じてフィールドを選びます。これは引き出しのサイズを決めるようなものです。
- CharField:短い文字(名前など)
- TextField:長い文章(説明文など)
- IntegerField:整数(年齢、数量)
- DateField:日付
class UserProfile(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
comment = models.TextField()
どのフィールドを選ぶかで、データの扱いやすさが変わります。
5. データを保存する基本操作
モデルを使うと、データの保存はとても簡単です。紙に書いた情報を箱に入れる感覚で考えてください。
book = Book(title="はじめてのDjango", price=2500)
book.save()
save()と書くだけで、データベースに保存されます。保存ボタンを押すイメージです。
6. 保存したデータを取り出す
次に、保存したデータを取り出します。名簿から名前を探すような感覚です。
books = Book.objects.all()
for book in books:
print(book.title)
はじめてのDjango
objects.all()は「全部取り出す」という意味です。
7. データの更新と削除
モデルを使うと、保存したデータの変更や削除も簡単です。間違えた文字を消して書き直す感覚です。
book = Book.objects.get(id=1)
book.price = 3000
book.save()
book.delete()
このように、Pythonの操作だけで安全にデータを扱えます。