見出し画像

Python(Anaconda) 学習備忘録#4   django で Mysql 環境構築編

こんにちはimaTrader です。
今回は djangoでmysqlを使用するための環境構築編です。

Mysqlのインストール

インストールに関してはこのサイトを参照しました。

すごくわかりやすくてインストール後のセッティングまで
続いていてとても助かりました。



Microsoft Visual C++ 2019 Redistibutable Package(x64)をインストール

ただしインストールを進めいたら上記サイトで紹介されている
インストール画面のプロダクト数より少ないことに気が付きました。

ひとつ前の画面に戻ってリストされている行をクリックしてみると

Microsoft Visual C++ 2019 Redistibutable Package(x64)がインストールされていないと表示されている。
そういえば 直前にパソコンの容量が少なくなってきたので不要そうなインストールを消したときに上のC++***というのがたくさんインストールされてたから全部アンインストールした覚えが。。
普通のパソコンには常時インストールされているのかわかりませんでしたが、もしない場合はインストールしないとMysqlのサービス一部受けられないようです。
早速再インストール




下記マイクロソフトのサイトからインストール可能

私は下の赤枠のパッケージをインストールしました。
お使いのパソコン使用により選択します。

あとは順調にインストールできました。

mysqlclient のインストール

インストールのエラー


mysqlclientはdjangoでmysqlを使用するのに必要なpythonのモジュールですので、備忘録#2のdjangoをインストールした手順でAnacondaNavigatorからインストールと思ったのですが、ここでエラーが発生しました。

エラー画面

原因はmysqlclientはpython3.9に対応していないということでした。


解決策

この問題に対しては、かなり解決に時間がかかりました。
すべて、経緯を書くととても長くなりますので、解決策のみ
書きます。

Anaconda Prompt からpip でインストールで解決しました。


参考にしたのはこのサイト


ここからAnaconda Prompt からpip でインストールしていきます。


①Anaconda Promptを開く
 (base) C:\Users\Pc名>の仮想環境はデフォルトで(base)となっています。

②仮想環境をtestにする。(※testは任意の名前)

 conda activate test

(test) C:\Users\Pc名> とります。

③pip でmysqlclient をインストール

pip install mysqlclient

④インストールの確認

pip list

下のリストの中にmysqlclient がリストにあれば成功です。

pip list 実行結果


MySQL Workbenchでデータベースの作成


Mysqlをインストールしたときに一緒にインストールされた
MySQL WorkbenchというGUIがありました。
初心者には本当にありがたいGUI。
早速使ってみます。

①MySQL Workbenchを開く

MySQL Workbench GUI

①新規コネクションを作成


デフォルトのコネクションがあるけどせっかくなので新規のコネクションを作ってみる。図中の⊕をクリック

Connection Nameに任意名前を入力
今回は『formProject_con』としました。
OKをクリック

コネクションが追加されている。



②スキーマ(データベース)の作成

コネクションを作成したら今度はデータベース(ここではスキーマ)
を作成していきます。

コネクションをクリックするとパスワード入力画面が表示される。

パスワード入力画面

インストール時に設定したパスワードを入力
Save password in vault はチェックしたら次からはパスワード入力
がなくなりそうなのでチェック(推測)
そしてOKをクリック


下図のアイコンをクリック

Schemaタブが表示される。
Name: に今回は『formproject_db』と入力
そして 『Apply』をクリック

もう一つ画面が出てくるけど『Dfault』のまま
Apply をクリック

データベースが追加されます。


③Tableの作成

次にテーブルの作成
formproject_db

テーブル作成画面が表示されます。

テーブル作成画面


テーブル名には app_Post(djangoでテーブル名を指定していないと
【アプリ名】_【Model】がテーブル名になるようです。)

以下コードは今回使用しているモデルのコードです。

class Post(models.Model):
    name = models.CharField(max_length=45, help_text='名前')
    address = models.CharField(max_length=45, help_text='住所')

ColumnNameにはモデルのプロパティ名になります。

確認画面



確認画面が出てくるのでApplyをクリック

④テーブルと列の作成確認



テーブルと列も追加されています。

テーブルと列の確認


⑤実際にアプリでデータベースにデータ挿入


作成したデータベースに実際にデータを入力してみます。

入力フォーム画面

入力したデータの確認をしてみます。

MySQL Workbench
『formproject_db』→『app_Post 』→ 『Select Rows -Limit 1000』

データが追加されていることを確認できたら成功です。

テーブルデータ確認

formProject/setting.pyの修正

プロジェクトが生成されたときはsqlite3がデフォルトで設定されていますのでsetting.py の内容を修正します。

修正前

# Database
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases

DATABASES = {
 
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
       'NAME': BASE_DIR / 'db.sqlite3' ,
    }

    }
}

修正後
 

   
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME":"formProject_db",
        "USER":"root",  #rootにしておくと現在開発中のPC名がユーザー名となる。
        "PASSWOR":"*******",
        "Host" : "Localhost",
        "PORT":"3306",
         #★★★
    }

Userは今のところ”root”のままです。
パスワードはmysqlインストール時に設定したパスワードとなります。

これで完了です。

かなり長くなりましたがSQLの接続はできるようになりました。

ここからはフォームにほかのデータ型やcheckbox等のフォームの表示の仕方
等を調べて実装していこうと思います。


この記事が気に入ったらサポートをしてみませんか?