見出し画像

【62日目】Django×MySQL_DBの設定&管理画面の作成方法

 このnoteは、31歳未経験からエンジニアを目指して勉強していく記録を綴っているものです。現在はAdTechでカスタマーサクセスを担当しつつ、色んなチャンスに恵まれ、CS業務や子育てと並行しながらチャレンジしています。

 これからプログラミングを始める方にとってのTipsやモチベアップに繋げられるように頑張りたいと思っています。
--------------------------------------------

今日は子供を数時間だけ実家で預かってもらい、大掃除をしました!最低限はキレイになったので、一先ず良かったです。


本日はまず MySQLの復習をしていて、テーブルの改造関連で以下の記事を参照しました。PRIMARY KEYやAUTO_INCREMENTを、削除したり後から追加したりする手順がまとまっています。


メインで進めたのは以下の動画です。DjangoでMySQLを接続する方法を学びました。


DjangoでMySQLを使えるようにするには以下の手順で進めていきます。(MySQLの環境設定は割愛)

①データベース設定用ライブラリをインストールする

pip install dj-database-url
pip install python-dotenv

それぞれの役割は以下です。
 dj-database-url:データベースの接続設定が1行で楽に書けるライブラリ
 python-dotenv:「.env」という環境設定ファイルを使ってプロジェクトの設定ができるライブラリ

②全体設定ファイルを編集する

import dj_database_url    #読み込んだものを自動的にデータベースにセットアップする

from dotenv import(
    find_dotenv,    #「.env」ファイルを見つける
    load_dotenv,    #「.env」ファイルを読み込む
)

load_dotenv(find_dotenv())
DATABASES = {
    'default': dj_database_url.config(conn_max_age=600),
}

 プロジェクト全体の「setting.py」の72行目付近にある「DATABASES」の欄を削除して上記コードを記載します。最後のconn_max_ageはデータベースへの接続速度を速くするための設定です。本番だと必ず上記のように設定されているとのことでした。

③MySQL用ライブラリのインストール

pip install mysqlclient

DjangoとMySQLを接続するためのライブラリです。

④MySQL上にプロジェクト用データベースを作成
(MySQLの通常の操作と同じため割愛)
(ログインしてCREATE DATABASEする)

⑤DjangoでMySQLを使う上で最も大事な「.env」ファイルを作成
プロジェクト直下に「.env」というファイル名でファイルを作り、以下のコードを書きます。

DATABASE_URL = <DBMS名(mysql等)>://<ユーザー名>:<パスワード>@localhost/<DB名>
 ※<>は実際にコードを書く際には不要です。

「あるユーザーがあるパスワードで、指定のデータベースに接続する」という意味です。「.」で始まるファイルはデフォルトでは非表示になっているため(Paizaでは)、フォルダを右クリックして「隠しフォルダを表示」を選択する必要があります。

⑥python manage.py migrateで動作確認
15行くらいのチェック項目でOKが表示されていればOKです。

上記の手順で進めればMySQLと接続され、Webアプリでデータベースを使えるようになります。


また、管理画面の作成方法も学びました↓

ユーザー設定などができる管理画面は以下のコードを実行することで作成できます。

python manage.py createsuperuser

実行すると

管理画面へログインするためのユーザー名とパスワードを設定

ユーザー名やパスワードをターミナルで設定します。パスワードは入力しても何も表示されないので、タイピングが上手くいってないのかと思って何度もやり直してしまいました笑。

その後、ブラウザのトップページのURLに「/admin」を追記するとログイン画面に飛べます。

Djangoの管理画面


ログインして驚いたのですが、これ、普段のカスタマーサクセス業務でよく使っている管理画面と同じなんです。弊社の素晴らしいツールがどういう仕組みで動いているのか、少しだけ見えた気がしてうれしかったです。


今日はまだ時間があるので、GithubやGitのあれこれについてこのあと学んでみようと思います。

そして明日、、Windows10に戻す許可が下りるのか…!
戻せなかったら、Windows11でDjangoをpipインストールする方法をちゃんと探すか、自宅のポンコツPCでトライするか、もう新しいPC買っちゃうか、で迷っています笑。


【YouTube動画】
Pythonでウェブサービスを作ろう!  #1
テンプレートをマスターしよう! #2
静的ファイルを配信しよう !#3
データベースと接続しよう! #5

【Paiza】
Aランクレベルアップメニュー 24/49問
ループメニュー1        20/20問
配列メニュー      27/64問
条件分岐メニュー    25/25問
二重ループメニュー   19/19問
配列活用メニュー    26/26問
文字列処理メニュー   30/30問
Bランクレベルアップメニュー 62/62問
Cランクレベルアップメニュー 30/30問
ランクB合格
ランクC合格

【書籍/ブログ】
基礎からのMySQL     514/514頁
Web技術の基本      189/189頁 ※2周目中
京大のPython教科書    116/201頁
Pythonデータベースプログラミング 194/194頁
Pythonエンジニアファーストブック読了

【Progate】
Python Ⅰ~Ⅴ
Python アプリ版 コースⅠ~Ⅴ
SQL Ⅰ~ Ⅳ
SQL アプリ版 コースⅢ
HTML&CSS 初級編

【その他】
VSCodeの環境構築
Anacondaの環境構築
MySQLの環境構築

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