0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Django プロジェクトで MySQL データベースをセットアップする方法

Posted at

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 カラムに AliceBob のデータが追加されます。

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: 使用するデータベースの名前です。
  • USERPASSWORD: データベースに接続するためのユーザー名とパスワードです。
  • HOSTPORT: 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 プロジェクトでのデータベース管理がより簡単になります。もしこの記事が役に立ったと思ったら、いいねやシェアをお願いします!コメントでフィードバックもいただけると嬉しいです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?