備考
Python:3.9
MySQL:8.0.31
動作環境:MacOS
開発環境:PyCharm
1. PyCharmにて新規プロジェクトを作成する
2. プロジェクトを以下の構成になるようにファイルを作成する
フォルダ構成.
.
├── main.py
├── env.py
├── .env
└── requirements.txt
3. requirements.txtファイルを以下の内容にする
requirements.txt
mysql
mysql-connector-python
python-dotenv
4. ターミナルにてコマンドを入力してモジュールをインストールする
ターミナル.
pip install -r requirements.txt
5. .envファイルを以下の内容にする
.env
# DB接続情報
DB_USER = 'root'
DB_PASSWORD = 'MySQLのパスワード'
DB_HOST = 'localhost'
DB_NAME = '任意の名前'
6. env.pyファイルを以下の内容にする
env.py
import os
from dotenv import load_dotenv
from os.path import join, dirname
dotenv_path = join(dirname(__file__), '.env')
load_dotenv(dotenv_path)
class Env:
# DB接続情報
DB_USER = os.environ.get("DB_USER")
DB_PASSWORD = os.environ.get("DB_PASSWORD")
DB_HOST = os.environ.get("DB_HOST")
DB_NAME = os.environ.get("DB_NAME")
7. main.pyファイルを以下の内容にする
main.py
import mysql.connector
from env import Env
if __name__ == "__main__":
print("データベースの作成 / 初期化を開始します")
cnx = None
try:
cnx = mysql.connector.connect(
user=Env.DB_USER,
password=Env.DB_PASSWORD,
host=Env.DB_HOST
)
cursor = cnx.cursor()
# データベースの作成
cursor.execute(f"CREATE DATABASE {Env.DB_NAME}")
cursor.execute("SHOW DATABASES")
print(f"データベース:{Env.DB_NAME}を作成", cursor.fetchall())
cursor.close()
except Exception as e:
if e.errno == 1007:
# 対象のデータベースが既に存在する場合は削除
cursor.execute(f"DROP DATABASE {Env.DB_NAME}")
cursor.execute("SHOW DATABASES")
print(f"データベース:{Env.DB_NAME}を削除", cursor.fetchall())
# データベースの作成
cursor.execute(f"CREATE DATABASE {Env.DB_NAME}")
cursor.execute("SHOW DATABASES")
print(f"データベース:{Env.DB_NAME}を作成", cursor.fetchall())
cnx.close()
finally:
if cnx is not None and cnx.is_connected():
print("データベースの作成 / 初期化が終了しました")
cnx.close()
print("データベースの作成 / 初期化が完了しました")
8. ターミナルにてコマンドを入力してデータベースを作成 / 初期化する
ターミナル.
python main.py