概要
- 先日Djangoチュートリアルを参考にインストールしたので、早速、会社のプログラムをローカル環境で触ることに。
- Djangoのインストール手順を記載した記事はこちら:【初めてのDjango】インストール手順:MVTモデル、ルーティング、DBマイグレーション、views.py、テンプレート、名前空間について
- 実際にDjango Appの作成〜DBマイグレーションをするにあたって遭遇したエラーを記しておく。
環境
- Mac
- 機種ID:MacBookPro18,3
- macOS:Monterey
- チップ:Apple M1 Pro
- メモリ:16GB
- Django:Version 4.1.3
- Python:Version 3.10.9
エラー発生し解決した内容3件
-
①
ModuleNotFoundError: No module named 'widget_tweaks'
-
pip3 install django-widget-tweaks
で解決 - 参考:ModuleNotFoundError: No module named 'widget_tweaks'
-
-
②
cannot import name ‘url’ from ‘django.conf.urls’
- Django4 にバージョンアップされた際に url 関数が削除されているとのこと
- urlをpathに変更したらエラーが消え解決しました
- 参考:【Django】cannot import name ‘url’ from ‘django.conf.urls’ エラーの原因と対処法
-
③
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install mysqlclient?
-
pip install mysqlclient
を実施して解決 - 参考:データベースの接続設定 - MySQL
-
mysqlclientとは?django推奨のドライバ
-
mysqlclientとは、MySQL(MariaDB)に接続するためのPythonライブラリ。
-
PythonがMySQLに接続するためにはドライバをインストールする必要があり、mysqlclientはそのうちの一つ。他にもいくつかあるが、現在Djangoがrecommendしているのはmysqlclient。
- PyMySQL:ピュアなPython製のMySQLクライアントドライバ。
- mysql-connector-python:MySQL開発元のOracle社が公式ライブラリとして配布しているドライバ。
- MySQL-Python:python3に未対応。比較的初期から存在しており、以前はよく使われていたらしいドライバ。
- mysqlclient:MySQL-Pythonをpython3に対応させた、Djangoの推奨ドライバ。モジュールの一つなので、pipを利用してインストール可能。
-
参考文献:Pythonのドライバがいくつもある件
-
ちなみに、djangoでマイグレートする場合はsettings.pyを編集する必要があります。中身は以下の通り。
- ENGINE:DBの種類
- NAME:DB名
- USER:DBにアクセスするユーザー名
- PASSWORD:DBにアクセスするユーザーのパスワード。未設定の場合は、ブランクにする
- HOST:DBのホスト名。明示的に設定する場合に記述する
- PORT:DBのホストのポート番号。明示的に設定する場合に記述する
- 参考文献:【Django】MySQLを設定する方法