PythonのDjango ORMとは?Djangoでデータベースを操作する方法を初心者向けにやさしく解説
生徒
「PythonでWebアプリを作るとき、データベースってどうやって操作するんですか?」
先生
「PythonのWebフレームワークであるDjangoでは、Django ORMという仕組みを使ってデータベースを簡単に操作できます。」
生徒
「ORMってなんですか?SQLを書かないとデータベースは操作できないと思っていました。」
先生
「ORMは、Pythonのプログラムを書くだけでデータベースを操作できる便利な仕組みです。SQLを直接書かなくても、データの追加・取得・更新・削除ができます。」
生徒
「それは便利ですね!Python初心者でも使えるんですか?」
先生
「もちろんです。それでは、PythonのDjango ORMとは何か、そしてDjangoでデータベースを操作する基本を順番に見ていきましょう。」
1. Django ORMとは?Pythonでデータベースを操作する仕組み
Django ORMとは、PythonのWebフレームワークであるDjango
通常、データベースを操作する場合はSQL
たとえば、図書館を想像してみてください。本の管理台帳がデータベースだとします。普通は台帳の書き方(SQL)を覚える必要がありますが、Django ORMを使えば「この本を追加する」「この本を探す」という感覚でPythonコードを書くだけで操作できます。
2. Djangoのモデルとは?データベースの設計
Djangoでデータベースを扱うとき、まずモデル(Model)というものを作ります。モデルとは、データベースのテーブル構造をPythonのコードで定義する仕組みです。
たとえば「本の管理システム」を作る場合、本のタイトルや著者などの情報を保存したいとします。そのとき、次のようなモデルを作ります。
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
price = models.IntegerField()
このコードでは、Bookというモデルを作っています。CharFieldは文字列を保存するフィールド、IntegerFieldは整数を保存するフィールドです。
つまり、このPythonコードがそのままデータベースのテーブル設計になるのです。Python初心者でも、データベース設計をコードで分かりやすく管理できます。
3. Django ORMでデータを追加する方法(INSERT)
Django ORMでは、Pythonのオブジェクトを作るような感覚でデータベースにデータを追加できます。SQLのINSERT文を書かなくても大丈夫です。
例えば、本のデータをデータベースに登録する場合は次のように書きます。
from app.models import Book
book = Book(title="Python入門", author="山田太郎", price=2000)
book.save()
save()というメソッドを呼び出すことで、データベースにデータが保存されます。
メソッドとは、簡単に言うと「特定の処理を行う命令」のことです。ここでは「データを保存する処理」を実行しています。
4. Django ORMでデータを取得する方法(SELECT)
データベースに保存したデータを取得することも、Django ORMならとても簡単です。SQLのSELECT文の代わりに、Pythonのメソッドを使います。
すべての本データを取得する例を見てみましょう。
from app.models import Book
books = Book.objects.all()
for book in books:
print(book.title, book.price)
objects.all()は、データベースにあるすべてのデータを取得するメソッドです。
for文を使うことで、一つずつデータを取り出して表示できます。Python初心者でも理解しやすい形でデータベース操作ができます。
Python入門 2000
Django入門 2500
5. Django ORMで条件検索する方法
データベースでは「特定の条件に一致するデータ」を検索することがよくあります。Django ORMではfilter()というメソッドを使います。
例えば、価格が2000円の本を検索する場合です。
from app.models import Book
books = Book.objects.filter(price=2000)
for book in books:
print(book.title)
このように書くだけで、指定した条件のデータを取得できます。SQLを書かなくても、Pythonのコードで検索できるのがDjango ORMの大きな特徴です。
6. Django ORMでデータを更新する方法
データベースに保存されたデータを変更することもよくあります。Django ORMでは、データを取得して値を変更してから保存します。
from app.models import Book
book = Book.objects.get(id=1)
book.price = 2200
book.save()
get()は、特定のデータを1件取得するメソッドです。そのあとで値を変更し、再度save()を実行することで更新されます。
このように、Pythonの変数を操作する感覚でデータベース更新ができるのがDjango ORMのメリットです。
7. Django ORMでデータを削除する方法
不要になったデータを削除する場合も、Django ORMならシンプルなコードで実行できます。SQLのDELETE文を書く必要はありません。
from app.models import Book
book = Book.objects.get(id=1)
book.delete()
delete()メソッドを実行すると、そのデータがデータベースから削除されます。
Django ORMを使えば、Python初心者でもデータベース操作(追加・取得・更新・削除)
まとめ
ここまで、PythonのWebフレームワークであるDjangoでデータベースを操作する仕組みとしてDjango ORMについて解説してきました。Django ORMは、Pythonのコードを使ってデータベースを操作できる便利な機能であり、SQLを直接書かなくてもデータの追加、取得、更新、削除といった基本操作を行うことができます。
Webアプリケーション開発では、ユーザー情報、商品情報、記事データ、コメントなど、さまざまなデータをデータベースに保存して管理する必要があります。そのときに役立つのがDjango ORMです。ORMは「Object Relational Mapping」の略で、Pythonのオブジェクトとデータベースのテーブルを結び付けて管理する仕組みです。
通常、データベースを操作する場合はSQLという専用の言語を使います。しかし、SQLを直接書くのは初心者にとって少し難しく感じることがあります。そこでDjango ORMを使うと、Pythonのコードだけでデータベースを扱えるため、プログラムの可読性が高くなり、開発効率も向上します。
Django ORMの基本ポイント
Django ORMを理解するためには、次のポイントを押さえておくことが重要です。
- モデル(Model)でデータベースのテーブル構造を定義する
- Pythonのコードでデータの追加(INSERT)ができる
- データ取得(SELECT)はobjectsメソッドで簡単に取得できる
- 条件検索はfilter()メソッドを使用する
- 更新は値を変更してsave()を実行する
- 削除はdelete()メソッドで行う
このようにDjango ORMを使うことで、Pythonの文法に近い形でデータベース操作ができます。特にWebアプリケーション開発では、ユーザー管理システム、ブログシステム、商品管理システムなどでデータベース操作が必須になるため、Django ORMの基本を理解しておくことはとても重要です。
また、Django ORMはデータベースの種類にも柔軟に対応しています。SQLite、PostgreSQL、MySQLなどのデータベースでも同じPythonコードで操作できるため、環境が変わってもコードを書き直す必要が少ないというメリットがあります。
Django ORMの基本操作サンプル
ここで、Django ORMを使った基本的なデータベース操作をまとめたサンプルプログラムを確認しておきましょう。Webアプリ開発でよく使う基本パターンです。
from app.models import Book
# データ追加
book = Book(title="Python基礎", author="佐藤一郎", price=1800)
book.save()
# データ取得
books = Book.objects.all()
for book in books:
print(book.title)
# 条件検索
cheap_books = Book.objects.filter(price=1800)
# 更新
book = Book.objects.get(id=1)
book.price = 2000
book.save()
# 削除
book = Book.objects.get(id=2)
book.delete()
このように、Django ORMではPythonのオブジェクト操作のような書き方でデータベース処理ができます。SQLを書く必要がないため、Python初心者でも比較的簡単にデータベース操作を理解することができます。
また、Django ORMは安全性の面でも優れています。SQLインジェクションのようなセキュリティ問題を防ぐ仕組みが組み込まれているため、安全にWebアプリケーションを開発することができます。Webサービスや業務システムなど、多くの現場でDjango ORMが利用されている理由の一つです。
さらに、Django ORMを理解すると、Djangoの管理画面(Admin)やフォーム機能、API開発などもスムーズに理解できるようになります。つまり、Djangoで本格的なWebアプリケーションを作るためには、ORMの仕組みをしっかり理解しておくことが大切です。
PythonとDjangoを使ったWebアプリ開発では、データベース操作は必ず登場します。モデルの設計、データの保存、条件検索、更新処理など、今回学んだDjango ORMの基本をしっかり身につけておくことで、より実践的なアプリケーション開発ができるようになります。
生徒
「Django ORMって、SQLを書かなくてもデータベースを操作できる仕組みなんですね。」
先生
「その通りです。Pythonのコードでデータベース操作ができるので、プログラムがとても分かりやすくなります。」
生徒
「モデルを作ることで、データベースのテーブルをPythonコードで定義できるのも便利ですね。」
先生
「はい。Djangoではモデルがデータベース設計の中心になります。タイトルや価格などのフィールドを定義すると、それがそのままテーブル構造になります。」
生徒
「データ追加はsave、検索はfilter、削除はdeleteという流れも理解できました。」
先生
「とても大事なポイントです。Django ORMでは追加、取得、更新、削除というデータベースの基本操作をPythonのメソッドで実行できます。」
生徒
「Python初心者でもデータベースを扱えるのがDjangoの魅力なんですね。」
先生
「そうですね。まずは今回学んだORMの基本をしっかり覚えて、ブログアプリや商品管理アプリなどを作りながら実践していくと理解がさらに深まりますよ。」