DjangoからMySQLデータベースへの連携手順を解説します。WebアプリやWebサイトを作りたい!と考えた方の第一の関門が環境構築なのではないでしょうか。
環境構築は開発に必須ですが時間がかかっては本末転倒…
そうならないように、この記事ではDjangoとMySQLの連携方法をまとめておきます。手順通りに書くので上から順に実行していけば簡単に連携できるはず。
・DjangoからMySQLデータベースを使えるようになる
・開発環境を構築し, 開発できる状態にする
OS:Windows10
エディタ:Visual Studio2019
Django v3.0.5
使用ソフト:XAMPP(ApacheとMySQL)
私の場合、エディタはVisual Studio 2019を使用していますが、他のエディタでも問題ないです。
XAMPPはWebアプリケーションの開発に必要なソフトウェアをパッケージ化したものです。XAMPPは無料で利用でき、OSに囚われず面倒な環境構築が簡単に行えます。
今回はXAMPP内に含まれるApacheサーバーとMySQLデータベースに、Djangoプロジェクトを連携していきます。
まずはXAMPPのダウンロード・インストールを以下のリンクから行ってください。
XAMPP
XAMPP Installers and Downloads for Apache FriendsXAMPP is an easy to install Apache distribution containing MariaDB, PHP and Perl.
Djangoプロジェクトの作成
始めにDjangoプロジェクトを作成します。作成手順は人によって違うと思うので、細かい説明は割愛します。
Visual Studioで作成したDjangoプロジェクトは以下のような階層となっています。
コマンドで作成する場合、以下のコマンドで作成できます。
1 2 |
#Djangoプロジェクト”mysite”の作成 django-admin startproject mysite |
Djangoアプリも作成しちゃいましたが、今回は必要ないです。
Djangoプロジェクトと書かれている部分のファイルがあるか確認してください。
XAMPPからMySQLの起動・データベースの作成
ここから本題です。XAMPPからApacheサーバー・MySQLを起動します。
XAMPPを開き、ApacheとMySQLのStartボタンをクリックします。
無事起動するとApacheとMySQLのPID(s)、Portが表示されます。
次に、MySQLのAdminをクリック。ブラウザからphpMyAdminページが表示されます。以下の手順でデータベースを作成するとデータベース一覧に新規作成したデータベースが表示されます。
新規作成->データベース名入力->作成
作成したデータベースにはテーブルがなにもないのを確認してみてください。Djangoから連携できると、ここに新しくいろいろなファイルが作成されます。
DjangoプロジェクトからMySQLデータベースにマイグレーション
Djangoプロジェクトに戻り、作成したMySQLデータベースにマイグレーション(migrate)をします。マイグレーションはDjangoプロジェクトに含まれるアプリケーションがデータベースを利用できるようにするための作業です。今回はDjangoに元々含まれているアプリ(管理用アプリや各種フレームワーク)をマイグレーションします。
mysqlclientをインストール
コマンドプロンプトを起動し、mysqlclientをインストールします。
1 |
pip install mysqlclient |
mysqlclientをインストールすることでDjangoからMySQLデータベースをいじれるようになります。
別の方法としてはPyMySQLをインストールする方法がありますが、こちらは私の環境でエラーが出たので省略。逆にmysqlclientでうまくいかない場合はPyMySQLの方法を調べてみてください。
settings.pyを修正
次にsettings.py > DATABASE{}を修正します。デフォルトではsqliteデータベースを利用する設定になっているかと思います。XAMPPで作成したデータベースに連携するために以下のように修正します。
1 2 3 4 5 6 7 8 9 |
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'connection_django', #データベースの名前 'USER': 'root', #ユーザー名 #'PASSWORD': 'password', パスワードがある場合は書く 'PORT': '3306', #ポート番号 XAMPP>MySQL部に記載 デフォルト3306でOK } } |
これでDjangoとMySQLデータベースを連携する手順はおわりました。
Djangoでマイグレーション
次に、manage.pyのあるディレクトリでコマンドプロンプトを開き、マイグレーションファイルを作成します。マイグレーションファイルはアプリの情報をデータベースに送るためのファイルです。
1 |
python manage.py makemigrations |
その後、マイグレーションを実行します。
1 |
python manage.py migrate |
MySQLへの接続確認
マイグレーションが成功していると、データベースにDjangoプロジェクトに含まれているアプリ・フレームワークのテーブルが作成されているはずです。
phpMyAdmin> 作成したデータベースを確認してみてください。以下の画像のようにたくさん表示されていれば成功です。
以上がDjangoとMySQLデータベースを連携する方法です。まとめてみると思った以上に簡単でした。
これでデータベースにDjangoから読み書きができるようになります。
最後まで読んでいただきありがとうございました。