PythonのWebアプリケーションフレームDjangoを使う-その3 Mysqlを使う-

本記事ではDjangoにデフォルトで設定されているSQLiteをMysqlに変えるときの設定について確認する。
プロジェクト名:ex2
アプリ名:apl2

目次

1.本稿の開発環境
(1)ホストOS
 Windows 10 Pro
(2)仮想環境(VirtualBox)
 ・ゲストOS:CentOs8(Red Hat 64-bit)
 ・pythonバージョン
  Python 3.6.8
・MySQL Serverのバージョン 
   # mysqld –version
/usr/libexec/mysqld Ver 8.0.26 for Linux on x86_64
(Source distribution)
・MySQL Clientのバージョン
# mysql –version
mysql Ver 8.0.26 for Linux on x86_64
(Source distribution)
・Djangoのインストール
  # python3 -m pip install Django
# python3 -m django –version
3.2.7
仮想環境の作成については下記のページを参照
VirtualBoxにCentOS8の環境作成

2 Djangoプロジェクトの作成
 # django-admin startproject ex2

3 Djangoアプリを作成
 プロジェクトのフォルダで下記コマンドを実行
  # python3 manage.py startapp apl2

4 プロジェクトの初期設定
 プロジェクトのsettings.pyファイルで次の2つを編集
・INSTALLED_APPS変数
・TEMPLATES変数のDIRS
(1)INSTALLED_APPS変数にアプリケーションを登録
  ’apl2.apps.Apl1Config’を登録

(2)テンプレートフォルダの指定
 HTMLテンプレートファイルを格納するフォルダを作成して登録する。ここではmanage.pyと同じディレクトリtemplatesフォルダを作成する。

5 データベースの設定
 プロジェクト名/settings.pyを編集
 mysqlを使うため、下記の内容に書き換える

6 PyMySQL(Python製のMySQLクライアント)のインストール
 ・pymysql
  # pip3 install pymysql
 ・インストール済みのパッケージ一覧の確認
  # pip3 freeze -l

7 manage.pyの編集
 下記の2行を追加
 ・import pymysql
 ・pymysql.install_as_MySQLdb()

(注)pymysqlについて
 「本番環境」でもMySQLが使えるようにするためにはwsgi.pyの編集が必要。
 wsgi.pyに下記を追加

8 マイグレーション
 データベースは予め作成しておく
 mysql> CREATE DATABASE ex2db;
 また、Mysqlサーバを起動しておく
 # service mysqld start
(1)マイグレーションを実行
 # python3 manage.py migrate

migrateコマンドではINSTALLED_APPSの設定を参照して、ex2/settings.pyファイルのデータベース設定に従って必要なすべてのデータベースのテーブルを作成する

(2)マイグレーションにより作成されたテーブルの確認
  # mysql -u root -p
  Enter password:
  mysql> SHOW databases;
  mysql> USE ex2db;
  mysql> SHOW tables;

The end