Django

【Python/Django】mysqlとの接続があまりにあっさりしすぎて拍子抜けした話

DjangoからPostgresqlがどうしてもwin7だと接続できなくて、もしやと思い他のPCでインストールしたらあっさり接続。相性悪いのかしら。諦めてXAMPPで入れてるmysqlにつないだらあっさり接続。本番環境どのDBかまだわからないし、しばらくはmysqlで進めることにします。 #mysql #django

Heroku(ヘロク)用にPostgresql(ポストグレエスキューエル)で進めようとしていたんだけれどまったく接続できず、

気持ち切り替えてmysql(マイエスキューエル)に繋いだらあまりにあっさり繋がって拍子抜けした話です。

環境
python 3.6.4
django 2.1.2
PyMySQL 0.9.2

Sponsored link

Djangoとmysqlを接続してみる

mysqlと繋げるためのテスト用としてDjangoフォルダを作ってみます。

mkdir mysql-test #テスト用にフォルダ作成
cd mysql-test #フォルダの中に入って
python -m venv venv #pythonプロジェクトお約束の仮想環境つくって
source venv/bin/activate #仮想環境有効化

ちなみに仮想環境有効化はwindowsの場合

venv/Scripts/activate #仮想環境有効化

で仮想環境モードになるようです。

仮想環境に入った状態で、

pip install PyMySQL #mysqlと接続するためのライブラリ

でライブラリをインストールしてMysqlと繋げる準備をしつつ、

django-admin startproject config . #Djangoプロジェクト作成 (テスト用)

でDjangoプロジェクトフォルダを作成します。

生成されたDjango側のmanage.pyの中に、

import pymysql
pymysql.install_as_MySQLdb()

と追記して、

Django側のconfig/settings.pyの中に、mysqlと繋げるための情報をこんな感じで追記します。

今回はずっと前にパソコンにインストールしていたXAMPP(ザンプ)のmysqlに接続するので、

XAMPP内のapacheとmysqlをスタートさせて。

XAMPP(ザンプ)・・個人パソコンにサーバー機能をインストールできる便利ツール。
サーバー(Apache(アパッチ))やデータベース(mysql)などをまとめてインストールできる)

mysqlの状態をウェブ上で見れることでおなじみの 『phpMyAdmin(ピーエイチピーマイアドミン)』を開いて、

先ほどの例だとsample データベースを作っておいて。

Djangoはプロジェクトを作った段階でログイン用のデータベース情報(マイグレーションファイル)を作成しているので、
おまじないコマンドをたたいてみます。

python manage.py migrate #プログラムで書いてある情報をデータベース用に変換して登録

無事につながればこれらのテーブルが生成されます。

auth_group
auth_group_permissions
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions
django_admin_log
django_content_type
django_migrations
django_session

アオキ
あっさり繋がったね・・

phpMyAdmin側を再読み込みしてみると、しっかりテーブル作成されてます。

おもむろに djangoを立ち上げる魔法のコマンド

python manage.py runserver

を起動すると、こちらもあっさり動いて。

アオキ
Postgresqlで苦戦し続けた日々はいったいなんだったんだろう・・

的な心境になってしまいました。

動いたからいいんだけどね・・

Sponsored link

おわりに

Postgresqlはとっても便利なwindow関数が使えたりして、

ビッグデータ時代に人気がでているようですが、

ポートを開けてもファイアウォールを切っても設定ファイルを変えても繋がらないような場合には、

WordPress(ワードプレス)で一気に有名になったブロガー御用達のmysql(マイエスキューエル)を素直に使うでもいいんじゃないかなと思います。

DjangoにはO/Rマッパーもあるので、おいおい別のデータベースに変わったとしてもだいたい大丈夫のはず。

O/Rマッパー・・Pythonでかけるデータベース接続用のツール。mysqlでもpostgresqlでも同じように使える。

1日がかりでしっかり悩んで試して、それでもダメならスッパリ諦めて次の手を探す、ということも大事なのかもしれませんね。

アオキ
あーもうちょースッキリしたわー

参考記事
Python3系でDjangoでMySQLに接続する

Sponsored link

関連記事

  1. Python

    スクラッチ(scratch)とマインクラフト(minecraft)を連携させて子ども向けプログラミン…

    CoderDojo熊本を立ち上げてからというもの、日々お勉強の毎日にな…

  2. flask

    Python(パイソン)でホームページをつくった時の話【Flask/Vagrant/Heroku】

    子ども向けプログラミング寺子屋『CoderDojo熊本』第1回目に来て…

  3. HTML/CSS

    【初心者向け】パソコンでホームページをつくる5つの方法とサーバー4種類をまとめてみました

    子供向け無料プログラミング寺子屋『CoderDojo熊本』第1回のアン…

  4. #100DaysOfCode

    【Vue.js/Laravel】Webアプリ実践記 37歳おっさんが独学でVue.js+Larave…

    本業Webマーケッターと育児をしながら独学でwebアプリをつくってみる…

  5. Python

    Python(パイソン)でできる事の実例 じゃらんや楽天トラベルからデータをとってゴニョゴニョできち…

    子ども向け無料プログラミング寺子屋『CoderDojo熊本』に参加され…

Sponsored link

最近の記事

アーカイブ

Sponsored link
  1. Django

    【Django】【Laravel】【RubyOnRails】を比較してみた【初心…
  2. HTML/CSS

    【厳選8冊】ホームページを作れるようになるためのおすすめ本【初心者向け】
  3. Laravel

    【Laravel5.5】Webアプリケーションを作るためのゆるめの環境構築編【N…
  4. アルデュイーノ Arduino

    【Arduino】ラジコンをつくってみた 〜今ドキのプログラミングの覚え方
  5. Laravel

    【Laravel(PHP)】でできる事をわかりやすく(ざっくりと)まとめてみた【…
PAGE TOP