Django プロジェクトで MySQL データベースをセットアップする方法
この記事では、Django プロジェクトで MySQL データベースをセットアップし、基本的なデータ操作を行う方法を詳しく丁寧に紹介します。Django と MySQL の連携に関心がある方は、ぜひ参考にしてください。
この記事で構築した環境前提です。備忘録として残しておきます。
1. MySQL ユーザーの作成と権限設定
まず、MySQL に接続し、Django プロジェクト用のユーザーを作成します。
1.1 MySQL に接続する
ターミナルで次のコマンドを入力して、MySQL に root
ユーザーで接続します。
$ mysql -u root -p
パスワードを入力して MySQL にログインします。
1.2 ユーザーの作成と権限の付与
ログインしたら、次のコマンドを実行して、新しいユーザー motty1050
を作成し、すべての権限を付与します。
mysql> CREATE USER 'your_user_name'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'your_user_name'@'localhost';
mysql> FLUSH PRIVILEGES;
-
CREATE USER: 新しいユーザー
your_user_name
を作成します。 - GRANT ALL PRIVILEGES: このユーザーにすべての権限を付与します。
- FLUSH PRIVILEGES: 権限の変更を即座に反映させます。
これで、ユーザー your_user_name
が作成され、すべてのデータベースに対する操作権限が付与されました。
2. データベースの作成
次に、新しいデータベースを作成します。ユーザー your_user_name
でログインし、test_db
という名前のデータベースを作成します。
2.1 ユーザー your_user_name
で MySQL にログイン
以下のコマンドを使用して、motty1050
ユーザーで MySQL にログインします。
$ mysql -u your_user_name -p
パスワードを入力してログインします。
2.2 データベースの作成
次に、データベース test_db
を作成します。
mysql> CREATE DATABASE test_db;
-
CREATE DATABASE: 新しいデータベース
test_db
を作成します。
これで、test_db
というデータベースが作成されました。
3. テーブルの作成とデータの挿入
作成したデータベース test_db
を使用して、新しいテーブルを作成します。
3.1 データベースの使用
まず、作成したデータベース test_db
を使用します。
mysql> USE test_db;
3.2 テーブルの作成
次に、新しいテーブル sample_table
を作成します。
mysql> CREATE TABLE sample_table (
-> id INT AUTO_INCREMENT PRIMARY KEY,
-> name VARCHAR(50),
-> created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
-> );
- id: 自動インクリメントの整数型の主キーです。
- name: 最大 50 文字の名前を格納するためのカラムです。
- created_at: レコードが作成された日時を自動で記録するタイムスタンプです。
3.3 データの挿入
テーブル sample_table
にデータを挿入します。
mysql> INSERT INTO sample_table (name) VALUES ('Alice');
mysql> INSERT INTO sample_table (name) VALUES ('Bob');
- INSERT INTO: テーブルに新しいデータを追加します。
-
name
カラムにAlice
とBob
のデータが追加されます。
4. データの確認
挿入したデータが正しく格納されているか確認するために、次のクエリを実行します。
mysql> SELECT * FROM sample_table;
出力例:
+----+-------+---------------------+
| id | name | created_at |
+----+-------+---------------------+
| 1 | Alice | 2024-10-20 12:34:56 |
| 2 | Bob | 2024-10-20 12:35:12 |
+----+-------+---------------------+
- SELECT: テーブル内のすべてのデータを取得します。
4.1 データの更新
テーブル内のデータを更新してみましょう。例えば、id
が 1 のレコードの name
を 'Alice'
から 'Alice_updated'
に変更します。
mysql> UPDATE sample_table SET name = 'Alice_updated' WHERE id = 1;
- UPDATE: 既存のデータを更新します。
- SET: 更新するカラムと新しい値を指定します。
4.2 データの削除
特定のデータを削除するには、次のクエリを使用します。例えば、name
が 'Alice_updated'
のレコードを削除します。
mysql> DELETE FROM sample_table WHERE name = 'Alice_updated';
- DELETE FROM: テーブルからデータを削除します。
- WHERE: 削除する条件を指定します。
5. Django プロジェクトでの MySQL 接続設定
Django プロジェクトで MySQL を使用するために、settings.py
に以下のようにデータベースの接続情報を設定します。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test_db',
'USER': 'your_user_name',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
}
}
- ENGINE: MySQL を使用するためのエンジンを指定します。
- NAME: 使用するデータベースの名前です。
- USER と PASSWORD: データベースに接続するためのユーザー名とパスワードです。
- HOST と PORT: MySQL サーバーのホスト名とポート番号です。
5.1 マイグレーションの実行
次に、Django のマイグレーションを実行してデータベースのセットアップを完了させます。
$ python manage.py migrate
- migrate: Django アプリケーションのデータベーススキーマを作成・更新します。
6. Django でのデータ操作
Django シェルを使って、データベースにアクセスし、データの操作を行うことができます。
6.1 Django シェルの起動
次のコマンドを実行して Django シェルを起動します。
$ python manage.py shell
6.2 データの操作
シェル内で次のようにしてデータを操作します。
from your_app.models import SampleTable
# 新しいデータの追加
SampleTable.objects.create(name='Charlie')
# テーブル内のすべてのデータを取得して表示
for record in SampleTable.objects.all():
print(record.id, record.name, record.created_at)
# 特定のデータの更新
record_to_update = SampleTable.objects.get(id=1)
record_to_update.name = 'Charlie_updated'
record_to_update.save()
# 特定のデータの削除
record_to_delete = SampleTable.objects.get(name='Bob')
record_to_delete.delete()
- create: 新しいレコードを追加します。
- objects.all(): テーブル内のすべてのレコードを取得します。
- get: 特定の条件に合致するレコードを取得します。
- save: レコードの変更を保存します。
- delete: 特定のレコードを削除します。
これで、Django の ORM を使ってデータの追加、取得、更新、削除ができるようになります。
まとめ
この記事では、MySQL データベースの作成、ユーザー設定、Django との接続方法について詳しく説明しました。MySQL と Django の連携を通して、データベースの操作をスムーズに行うための基本的な手順を学びました。
これらの手順をマスターすることで、Django プロジェクトでのデータベース管理がより簡単になります。もしこの記事が役に立ったと思ったら、いいねやシェアをお願いします!コメントでフィードバックもいただけると嬉しいです。